Hibernate映射设置lazy ='false'

Chi*_*lax 4 mapping hibernate lazy-evaluation fetch

在hibernate映射中,我设置了属性lazy="false",这将获取父级的所有子记录.

这在整个应用程序中使用.
这会在我的应用程序的特定模块中产生性能问题,其中我只想获取父记录.

我不能更改lazy属性,true因为它在许多其他地方使用.有没有办法来解决这个问题?

如果需要更多信息,请告诉我.

Pok*_*uri 6

这些在休眠方面没有这样的功能,因为它尊重你的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只要父对象使用此类.希望你明白了!