Total Tayangan Halaman

Mengoptimalkan Situs Web - GZIP dan Mod Deflate File Compression

Mengoptimalkan Situs Web - GZIP

Floating Random Post MP3 Player Bagikan Tombol Plugin Halaman Resmi

Random Post MP3 Player Plugin Halaman Resmi

Cara Selfie dengan Tepuk Tangan dan Bersiul untuk Telepon Lama

Posting yang menarik

Cara Selfie dengan Tepuk Tangan dan Bersiul

Bagaimana cara menerapkan self join di hibernate

Sumber: http://viralpatel.net/blogs/hibernate-self-join-annotations-one-to-many-mapping/

Kami memiliki tabel buat dalam database. 

CREATE TABLE karyawan ( 
employee_id NUMBER (10) BUKAN NULL, 
nama depan VARCHAR2 (50) NULL DEFAULT NULL, 
nama belakang VARCHAR (50) NULL DEFAULT NULL, 
manager_id NUMBER (10) NULL DEFAULT NULL, 
KUNCI UTAMA ('employee_id'), 
CONSTRAGINTER 'KUNCI LUAR NEGERI (' manager_id ') REFERENSI' karyawan '(' employee_id ') 
); 

Di sini, di tabel Karyawan, kami mendefinisikan kolom MANAGER_ID yang dipetakan ke kunci utama tabel yang sama. Jadi untuk setiap karyawan kami akan menyimpan id manajernya juga. Manajer akan menjadi karyawan lain dalam tabel ini

Kami akan menggunakan anotasi untuk mengimplementasikan ini di hibernasi:


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Entity
@Table(name="EMPLOYEE")
public class Employee {
    @Id
    @Column(name="EMPLOYEE_ID")
    @GeneratedValue
    private Long employeeId;
      
    @Column(name="FIRSTNAME")
    private String firstname;
      
    @Column(name="LASTNAME")
    private String lastname;
      
    @ManyToOne(cascade={CascadeType.ALL})
    @JoinColumn(name="manager_id")
    private Employee manager;
  
    @OneToMany(mappedBy="manager")
    private Set<Employee> subordinates = new HashSet<Employee>();
  
    public Employee() {
    }
  
    public Employee(String firstname, String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }
          
    // Getter and Setter methods
}


Perhatikan bahwa dalam kelas entitas Karyawan, kami menetapkan dua atribut baru: Manajer karyawan dan Setbawahan. Manajer atribut dipetakan dengan penjelasan @ManyToOne dan bawahan dipetakan dengan @OneToMany. Juga di dalam atribut @OneToMany, kami mendefinisikan mappedBy = "manager" yang menjadikan manajer sebagai pemilik hubungan dan dengan demikian mengelola hubungan asing di dalam tabel. 

Juga penjelasan @JoinColumn ditentukan pada manajer yang menjadikannya pemilik hubungan. @JoinColumn mendefinisikan kolom bergabung yang dalam kasus kami adalah manager_id.

Bagaimana cara menerapkan self join di hibernate