标签: java jpa
class A{ private List<B> bs; } class B{ private String fieldA; @Basic(fetch = FetchType.LAZY) private String fieldB; }
当我这样做时:
from A
它还返回我已初始化懒惰的fieldB数据。 为什么会这样? 我做错了什么?
答案 0 :(得分:1)
JPA中的LAZY(与EAGER不同)仅仅是JPA实施的一个提示 可能会忽略。
无论LAZY / EAGER设置如何,ObjectDB都会急切地加载基本字段。
如果您想要延迟加载非常大的字符串 - 请将它们保存在单独的实体对象中。例如,您可以使用单个String字段定义实体类LargeString,将对LargeString的引用设置为LAZY。
或者,您可以使用查询仅检索选定的字段。但是,如果通常不需要这些字符串,那么将大字符串保留在单独的实体中可能会更有效。
Source1,Source2