从 Hibernate 延迟加载多级对象

Lazy load with multi level objects from Hibernate

我有教室和用户 class:

@Entity
public class ClassRoom {

    @Id
    @GeneratedValue
    private Long id;

    @OneToMany(fetch = FetchType.LAZY)
    private List<User> users;
    // etc
}

@Entity
public class User{

    @Id
    @GeneratedValue
    private Long id;

    @OneToMany(fetch = FetchType.LAZY)
    private List<Role> roles;
    // etc
}

具有惰性的一对多关系。

我正在尝试获取包含用户及其角色的 ClassRoom,因此在 DAO 中:-

@Query("SELECT cr FROM ClassRoom as cr join fetch cr.users u ")

但是通过该查询,我得到了 classRoom 及其用户,但没有他们的角色。请建议从 classroom class.

中获取具有角色的用户的正确方法

获取角色:

@Query("SELECT cr FROM ClassRoom cr join fetch cr.users u join fetch u.roles r")