Chi*_*lax 4 mapping hibernate lazy-evaluation fetch
在hibernate映射中,我设置了属性lazy="false"
,这将获取父级的所有子记录.
这在整个应用程序中使用.
这会在我的应用程序的特定模块中产生性能问题,其中我只想获取父记录.
我不能更改lazy
属性,true
因为它在许多其他地方使用.有没有办法来解决这个问题?
如果需要更多信息,请告诉我.
这些在休眠方面没有这样的功能,因为它尊重你的lazy="false"
.因此,我可以建议解决您的需求是使用另一个虚拟具体类扩展您的查询类,并为该类定义映射,而不包含该子关联.
假设你有一个带有子映射的父类
class Parent{
private List<Child> kids;
}
Run Code Online (Sandbox Code Playgroud)
和你的父亲的映射是
<class name="Parent" table="PARENT">
// other properties
// child mapping
<set name="kids" table="KIDS" lazy="false">
<key column="parent_id"/>
<one-to-many class="Child"/>
</set>
</class>
Run Code Online (Sandbox Code Playgroud)
然后,您可以创建另一个扩展Parent类的类
class MinimalParent extends Parent{
// leave implementation as blank
}
Run Code Online (Sandbox Code Playgroud)
然后将其映射为下方
<class name="MinimalParent" table="PARENT">
// other properties
// do not map child in this
</class>
Run Code Online (Sandbox Code Playgroud)
并且MinimalParent
只要父对象使用此类.希望你明白了!
归档时间: |
|
查看次数: |
18819 次 |
最近记录: |