我有3个实体大学,学生和主题.大学和学生有很多关系,学生和学科也有很多关系.它们实现如下. 大学:
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(
name="UNIV_TO_STD_REL"
, joinColumns={
@JoinColumn(name="UNIV_DBKY", referencedColumnName="UNIV_DBKY")
}
, inverseJoinColumns={
@JoinColumn(name="STD_DBKY", referencedColumnName="STD_DBKY")
}
)
private List<Student> students;<br>
Run Code Online (Sandbox Code Playgroud)
学生:
@ManyToMany(mappedBy="students")
private List<University> universities;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(
name="STD_TO_SUB_REL"
, joinColumns={
@JoinColumn(name="STD_DBKY", referencedColumnName="STD_DBKY")
}
, inverseJoinColumns={
@JoinColumn(name="SUB_DBKY", referencedColumnName="SUB_DBKY")
}
)
private List<Subject> subjects;<br>
Run Code Online (Sandbox Code Playgroud)
学科:
@ManyToMany(mappedBy="subjects")
private List<Student> students;
Run Code Online (Sandbox Code Playgroud)
现在,我想让一个特定的大学的学生.但不是相关的科目.所以,我正在调用存储库如下:
University u=UniversityRepo.findByUnivId("1234");
u.getStudents();
Run Code Online (Sandbox Code Playgroud)
但是,这让我回到了学生名单以及来自主题的相关科目.似乎在我调用u.getStudents()时,它不仅取得学生,还取得科目,虽然FetchType是LAZY.
请建议.
编辑: UniversityRepo
public interface UniversityRepo extends JpaRepository<University, BigInteger> {
public University findByUnivId(String …Run Code Online (Sandbox Code Playgroud)