小编Bab*_*bun的帖子

FetchType.LAZY不适用于Spring数据jpa中的@manyToMany

我有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)

java hibernate

6
推荐指数
1
解决办法
2107
查看次数

标签 统计

hibernate ×1

java ×1