Terdapat tiga cara untuk melaksanakan perhubungan pemetaan banyak-ke-banyak dalam Hibernate: dengan menggunakan anotasi @ManyToMany, dengan menggunakan jadual kesatuan dan dengan menggunakan jadual perkaitan. Dalam contoh ini, anotasi @ManyToMany digunakan, atribut mappedBy digunakan dalam EntityA untuk menentukan medan yang dikaitkan dengan pemetaan dalam EntityB dan anotasi @ManyToMany digunakan dalam EntityB untuk mewakili hubungan pemetaan banyak-ke-banyak dengan EntityA .
Hibernate kaedah pemprosesan perhubungan pemetaan banyak-ke-banyak
Pengenalan
Hibernate ialah rangka kerja pemetaan perhubungan objek (ORM) untuk mewujudkan objek dan pemetaan pangkalan data antara pangkalan data Java Pemetaan banyak-ke-banyak ialah sejenis perhubungan di mana satu entiti boleh dikaitkan dengan berbilang entiti dan sebaliknya.
Melaksanakan pemetaan banyak-ke-banyak
Dalam Hibernate, pemetaan banyak-ke-banyak boleh dicapai dengan menggunakan anotasi @ManyToMany
, seperti ditunjukkan di bawah: @ManyToMany
注解来实现,如下所示:
// EntityA.java @Entity public class EntityA { @Id private Long id; @ManyToMany(mappedBy = "entitiesA") private Set<EntityB> entitiesB; } // EntityB.java @Entity public class EntityB { @Id private Long id; @ManyToMany private Set<EntityA> entitiesA; }
在 EntityA 中,entitiesB
字段表示与 EntityA 相关联的 EntityB 集合。mappedBy
属性指定了在 EntityB 中与该映射相关联的字段。在 EntityB 中,entitiesA
字段表示与 EntityB 相关联的 EntityA 集合。
实战案例
问题:假设我们有一个学生和导师系统。每个学生可以有多个导师,每个导师也可以教多个学生。设计 Hibernate 映射以表示此关系。
解决方案:
// Student.java @Entity public class Student { @Id private Long id; private String name; @ManyToMany(mappedBy = "students") private Set<Tutor> tutors; } // Tutor.java @Entity public class Tutor { @Id private Long id; private String name; @ManyToMany private Set<Student> students; }
注:
Student
实体中,tutors
字段表示与学生相关联的导师集合。mappedBy
属性指定了在 Tutor
实体中与该映射相关联的字段。Tutor
实体中,students
rrreeemappedBy
menentukan medan dalam EntityB yang dikaitkan dengan peta. Dalam EntityB, medan entitiesA
mewakili koleksi EntityA yang dikaitkan dengan EntityB. Pelajar
, medan tutor
mewakili koleksi tutor yang dikaitkan dengan pelajar . Atribut mappedBy
menentukan medan dalam entiti Tutor
yang dikaitkan dengan peta. 🎜Tutor
, medan pelajar
mewakili koleksi pelajar yang dikaitkan dengan tutor. 🎜🎜Atas ialah kandungan terperinci Bagaimanakah Hibernate mengendalikan perhubungan pemetaan banyak-ke-banyak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!