Hibernate 总是需要从@ManyToMany中的数据库获取对象吗
我用一个单独的连接表为@ManyToMany建模。这个代码和我的类似Hibernate 总是需要从@ManyToMany中的数据库获取对象吗,hibernate,jpa,Hibernate,Jpa,我用一个单独的连接表为@ManyToMany建模。这个代码和我的类似 @Entity class CourseRegistration { @Id Long id; @ManyToOne @JoinColumn(name = "student_id") Student student; @ManyToOne @JoinColumn(name = "course_id") Course course; LocalDat
@Entity
class CourseRegistration {
@Id
Long id;
@ManyToOne
@JoinColumn(name = "student_id")
Student student;
@ManyToOne
@JoinColumn(name = "course_id")
Course course;
LocalDateTime registeredAt;
int grade;
// additional properties
// standard constructors, getters, and setters
}
class Student {
// ...
@OneToMany(mappedBy = "student")
Set<CourseRegistration> registrations;
// ...
}
class Course {
// ...
@OneToMany(mappedBy = "courses")
Set<CourseRegistration> registrations;
// ...
}
但这是行不通的。首先,我必须设置学生成员和课程注册
所以我将去数据库获取这些对象
Student studentDb = service.getStudent(studentId);
Course courseBiologyDb = service.getCourse(courseBiologyId);
现在我可以设置注册生物学课程了
courseRegistrationBiology.setStudent(studentDb);
courseRegistrationBiology.setCourse(courseBiologyDb);
只有现在我才能添加它,然后在数据库中更新
myStudent.getRegistrations.add(courseRegistrationBiology);
有2次我不得不去数据库获取对象。但实际上我只想在我的联接表中设置2个ID。在我看来,这真是糟糕的表现
myStudent.getRegistrations.add(courseRegistrationBiology);