【发布时间】:2012-06-15 08:59:05
【问题描述】:
使用 JPA EntityManager 和 JPA Query 对象,我如何覆盖具有注释 @OneToMany(fetch = FetchType.EAGER) 以在查询中延迟获取的内容?
如果我有休眠查询对象,我可以让它创建一个条件对象并使用它,将获取类型设置为惰性。但我必须使用 JPA 查询对象。这个问题有解决办法吗?
【问题讨论】:
标签: java hibernate jpa persistence
使用 JPA EntityManager 和 JPA Query 对象,我如何覆盖具有注释 @OneToMany(fetch = FetchType.EAGER) 以在查询中延迟获取的内容?
如果我有休眠查询对象,我可以让它创建一个条件对象并使用它,将获取类型设置为惰性。但我必须使用 JPA 查询对象。这个问题有解决办法吗?
【问题讨论】:
标签: java hibernate jpa persistence
即使使用本机 Hibernate API,也无法做到这一点。如果关联被定义为 EAGER,它将总是被急切地加载,并且无法使用查询来更改它。
反之则不然:您可以使用查询急切地加载惰性关联。
【讨论】:
查看 Hibernate Fetch 配置文件或 JPA 实体图。自从您在 2012 年提出该问题后,此问题已得到解决。
【讨论】: