我有一个具有角色的用户实体。角色实体具有权限。我的实体如下所示:
第一个
我想加载一个具有其角色和权限的用户。
我尝试在JpaRepository中使用@Query注解定义一个方法,
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
@Query("SELECT u FROM User u " +
"INNER JOIN u.role r " +
"INNER JOIN r.privileges p " +
"WHERE u.id = ?1")
Optional<User> findByIdWithRoleAndPrivileges(Long id);
}
我的用户加载了他的角色对象,但没有角色的权限。知道我做错了什么吗?
1条答案
按热度按时间vyu0f0g11#
默认情况下,大多数关联都是延迟提取的。要立即提取多对多角色-权限关联,请将查询更改为:
“JOIN FETCH”是导致JPA/Hibernate急切地获取关联实体的原因。