【发布时间】:2020-10-23 00:20:12
【问题描述】:
我有两张表 Student 和 Course 具有多对多关系。
@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 和 Persistence API 进行映射 假设我在 Course 表中有 5 门课程:
Id Name
1 Course1
2 Course2
3 Course3
4 Course4
5 Course5
Student 表从零记录开始。一旦一个学生被插入到学生表中,即
Id Name
1 Student1
我还需要在 CourseStudent 表中插入至少一条记录。假设 Stduent1 学习了三个课程 Course1、Course2 和 Course3,那么我需要插入:
StudentId CourseID
1 1
1 2
1 3
我现在遇到的困难是,在我的数据模型中,我没有 CourseStudent 类,而只有 Student 和 Course 以及它们的映射 @many_to_many。这个表CourseStudent 是由Hibernate 创建和管理的,它的映射类CourseStudent 似乎没有必要。
在这种情况下,如何将记录插入到模型中没有对象映射的关联表中?我是否必须显式创建一个类 CourseStudent 来实现这一点,以便我可以将数据保存到关联表中?
【问题讨论】:
标签: java mysql jpa associations