【发布时间】:2015-02-19 08:35:14
【问题描述】:
我有一个 Hibernate 实体,我在数据库中的某些条件下手动定义了一个 Ref Integrity,它可以很好地获取目标实体。
问题是我将该属性的 FetchType 定义为 Lazy。所以理想情况下,它应该只在访问时请求。但是当我获取父实体时,它也会获取映射的实体。
【问题讨论】:
-
@ManyToOne(fetch = FetchType.LAZY) @JoinColumns ({ @JoinColumn(name="WK_SUB_LG_CODE", referencedColumnName = "SUBLANGUAGECODE",updatable = false, insertable = false), @JoinColumn(name= "WK_LG_CODE", referencedColumnName = "LANGUAGECODE",updatable = false, insertable = false) }) public SubLanguage getSubLanguageByWkLgCode() { return subLanguageByWkLgCode; }
-
你怎么知道它也获取映射的实体?
-
被引用的实体是否是持久对象层次结构的一部分,即具有子类?
-
@Mayura Nawarathne - 我打开了 show_sql 功能,我可以在获取父实体时看到两个 select 语句。
-
@ThomasStets - 是的,它也有子类,它也可以是某些父对象的一部分。但问题是,我没有获取这个引用的对象,只是访问父对象,它仍然加载。我将 FetchType 指定为 Lazy。
标签: java entity-framework hibernate