Piy*_*ush 3 persistence hibernate jpa hql jpql
我有以下映射
1 用户可以有 0 个或多个角色。
来自用户的查询u JOIN Fetch u.roles
如果 User1 有两个角色 RoleA 和 RoleB。
然后 User1 返回两次。
我期望的是 User1 应该返回一次,其中包含包含 RoleA 和 RoleB 的角色列表
我该如何解决这个问题。
还请解释多对多关系的行为。
请参阅 JPA 规范 4.4.5.3
SELECT d FROM Department d LEFT JOIN FETCH d.employees WHERE d.deptno = 1
Run Code Online (Sandbox Code Playgroud)
fetch join 与相应的内连接或外连接具有相同的连接语义,除了在连接操作右侧指定的相关对象不会在查询结果中返回或在查询中以其他方式引用。因此,例如,如果部门 1 有五个员工,则上述查询返回对部门 1 实体的五个引用。
选项
DISTINCT在SELECT子句中添加 a以过滤掉重复的行。EntityGraph为查询定义一个并将roles字段添加到它,它将被提取,这意味着您"FETCH JOIN"从查询中省略了。roles字段标记为 EAGER,但这将适用于该字段的所有提取,因此可能不可取。| 归档时间: |
|
| 查看次数: |
5092 次 |
| 最近记录: |