【发布时间】:2021-10-30 11:46:00
【问题描述】:
有一个 Spring JPA 应用程序:
对于一个用例,我想将所有学生数据读入一组学生,如下面的第一组 (CourseRepository.findAll()) - 这仅用于读取与课程相关联的学生。
对于第二个用例,我想仅使用学生 UUID 来读取和更新学生集(因为这明显更快,避免了许多连接/级联) - 如下面的第二个集 - 这仅用于添加或将学生删除到课程中。
@Entity
@Table(...)
public class Course {
@Id
private UUID id;
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST})
@JoinTable(
schema = "...",
name = "...",
joinColumns = {@JoinColumn(name = "course_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "student_id", referencedColumnName = "id")}
)
private Set<Student> students = new java.util.HashSet<>();
@ManyToMany
@JoinTable(
schema = "...",
name = "...",
joinColumns = {@JoinColumn(name = "course_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "student_id", referencedColumnName = "id")}
)
private Set<UUID> students = new java.util.HashSet<>();
...
}
@Entity
@Table(name="student")
public class Student {
@Id
private UUID id;
private String name;
...
}
@Repository
public interface CourseRepository extends JpaRepository<Course, UUID> {}
【问题讨论】:
标签: hibernate jpa spring-data-jpa hibernate-mapping