@Basic字段上的Hibernate EntityGraph无法按预期工作

时间:2018-06-18 11:56:41

标签: hibernate jpa entitygraph

似乎Hibernate忽略了javax.persistence.fetchgraph中指定的任何@Basic字段,并且总是加载整个对象,直到我们明确地将字段定义为@Basic(fecth = LAZY)。 然而,JPA 2.1标准说:

  

要指定获取图,请在执行EntityManager.find或查询操作时设置javax.persistence.fetchgraph属性。获取图仅包含EntityGraph实例中明确指定的字段,忽略默认实体图设置

问题在于我不希望默认情况下将所有字段都设置为LAZY加载,因为在某些特定情况下,我只需要部分对象用于UI的海量数据提取。当我可以动态指定要加载的内容时,是否有解决此案例的方法?

EclipseLink可以按预期使用fetchgraph。

P.S。 Hibernate 5.3.1.Final,使用hibernate-gradle-plugin进行字节码增强:5.3.1.Final:

hibernate {
    enhance {
        enableLazyInitialization= true
        enableDirtyTracking = true
        enableAssociationManagement = true
        enableExtendedEnhancement = false
    }
}

1 个答案:

答案 0 :(得分:0)

这似乎是一个Hibernate的错误:https://hibernate.atlassian.net/browse/HHH-8776