我有兩張桌子,學生和課程有着多對多的關係。如何通過Hibernate在多對多的關係中插入關聯表?
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@ManyToMany(mappedBy="students")
private List<Course> courses = new ArrayList<Course>();
...
// getters and setters
}
@Entity
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@ManyToMany
private List<Student> students = new ArrayList<Student>();
...
// getters and setters
}
我使用Hibernate和持久性API進行映射 比方說,我在課程表5道菜:
Id Name
1 Course1
2 Course2
3 Course3
4 Course4
5 Course5
學生表零條記錄開始。一旦學生插入到學生表中,即
Id Name
1 Student1
我還需要在CourseStudent表中插入至少一條記錄。比方說,Stduent1需要三個過程Course1,Course2和Course3,然後我需要插入:
StudentId CourseID
1 1
1 2
1 3
我現在遇到的困難是,在我的數據模型,我沒有CourseStudent類,但只學生和課程及其映射@many_to_many。此表CourseStudent由Hibernate創建和管理,其映射類CourseStudent似乎沒有必要。
在這種情況下,如何將記錄插入到模型中沒有對象映射的關聯表中?我是否必須顯式創建一個CourseStudent類才能實現此目的,以便將數據保存到關聯表中?
上的映射指定級聯:http://docs.oracle.com/javaee/5/api/javax/persistence/ManyToMany.html#cascade() –