Hibernate 总是需要从@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

我用一个单独的连接表为@ManyToMany建模。这个代码和我的类似

@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);