如何在运行时覆盖FetchType.EAGER延迟

使用JPA EntityManager和JPA Query对象,如何覆盖在查询中懒惰地获取注释@OneToMany(fetch = FetchType.EAGER)的内容?

如果我有hibernate Query对象,我可以创建一个条件对象并使用它,将fetch类型设置为惰性。 但我必须使用JPA Query对象。 这个问题有什么解决方案吗?

即使使用本机Hibernate API,也无法做到这一点。 如果关联被定义为EAGER,它将始终被急切地加载,并且无法使用查询来更改它。

反之亦然:您可以使用查询急切加载延迟关联。

查看Hibernate Fetch配置文件或JPA实体图。 自从您在2012年提出问题以来,此问题已得到解决。