cen*_*cen 6 java jpa eclipselink
我有以下模型:订单有多个项目,项目有多个其他孩子.它是几层深的树.
我对所有急切装载@OneToMany连同@JoinFetch和所有迟缓装载@ManyToOne(以避免在N + 1个问题的其他查询).
根据我如何在JPQL中进行"深度"提取连接?我可以使用多个查询提示来推测加载整个树,但是,我更喜欢仅通过注释来执行此操作.
不幸的是,即使对整个树进行了注释@JoinFetch,似乎连接只执行1级深度,导致多个查询而不是整个树的单个查询.
这些是我可以看到执行的查询:
订单 - 所有孩子的左外连接.
OrderItem - 所有子项的左外连接.
所有级别的......等等.
我可以看到@JoinFetch它正在工作,但它只能在一个层次上工作.我想要实现的是一个加载整个树的单个查询.
虽然这个级别的深度加载确实帮助我加快了超过2倍的调用,但是当一次加载大量实体时它们仍然不是最理想的,因为每个权限意味着5个以上的额外查询.
有没有办法仅使用注释加载整个树,还是应该手动设置多个查询提示来实现此目的?
由詹姆斯·萨瑟兰答案在这里似乎并不为真(约递归工作).
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |