gpt4 book ai didi

spring - 在运行时临时将 FetchType.LAZY 更改为 FetchType.EAGER (Hibernate/JPA)

转载 作者:行者123 更新时间:2023-12-04 18:42:19 26 4
gpt4 key购买 nike

我有一些字段标记为 LAZY 的实体.为了加载LAZY字段只是在 session 打开时访问 getter,因此 ORM 代理执行 select子查询。

但是,当您需要完全解析的对象作为由 join 获取的急切关系时,这是次优的。 .

如何将某些字段标记为 EAGER暂时只用于一个查询?

使用 JPA 标准还是仅使用像 Hibernate 这样的专有扩展是可能的?

最佳答案

Hibernate 有一个名为 Fetch Profiles 的功能这解决了这个问题。它需要访问 Hibernate Session ,但您可以使用 unwrap()EntityManager 访问它.

如果你想要一个纯 JPA 解决方案,你可以使用带有 join fetch 的查询在需要预先获取的用例中加载对象时。

更新:
JPA 2.1(由 Hibernate 4.3 实现)支持类似于获取配置文件的功能 - entity graphs .

关于spring - 在运行时临时将 FetchType.LAZY 更改为 FetchType.EAGER (Hibernate/JPA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com