java - 嵌入式的休眠延迟加载字段
问题描述
我有以下结构:
@Entity
class Parent {
@Id
private String id;
@Embedded
private Child child;
}
@Embeddable
class Child {
@Column(...)
private int fieldA;
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(...)
private A a;
}
并且A
是一个普通的 Java 类。
class A {
...
}
我的问题是,在从数据库加载父对象时,是否可以延迟加载a
Child 类的字段?我尝试使用增强器插件,但仍然急切地获取该字段。
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>${hibernate.version}</version>
<executions>
<execution>
<configuration>
<failOnError>true</failOnError>
<enableLazyInitialization>true</enableLazyInitialization>
</configuration>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
延迟加载父类的子字段不是一种选择。我的目标是只延迟加载a
Child 类的字段。欢迎任何建议
解决方案
这似乎是休眠中的一个问题。不幸的是,它仍然处于打开状态,根据问题的评论部分,它可能会在 6.0 版本中修复。
根据您的用例,您可以使用关系解决此问题,或者从可嵌入实体中移出需要延迟加载的字段。
推荐阅读
- laravel - PhpStorm 它无法解析根方法,对于 vue.js
- c# - Unity - 构建 .apk 时如何保存 .csv 文件
- knp-snappy - 生成pdf时的knp_snappy空格
- javascript - JavaScript:无法禁用/启用输入按钮
- flutter - 在颤动中创建短字符串的动态列表
- amazon-web-services - AWS - 批处理与 Fargate
- intellij-idea - 当我转到声明/实施时,IntelliJ Rider 总是有两个相同的目标
- java - 如何使用 AssertJ 检查是否至少一个字符串包含在另一个字符串中?
- openmdao - 如何获取 Auto-IVC 组件输出名称列表
- sql - BigQuery:子查询 SELECT A WHERE B MAX AND C = Parent Alias