Java Hibernate Lazy=false

Java Hibernate Lazy=false,java,hibernate,Java,Hibernate,设置Lazy=false时,hibernate将自动将对象加载到所需的集合中,例如 <set name="Options" table="ATTRIBUTEOPTION" inverse="false" cascade="all" lazy="false"> <key> <column name="ATTRIBUTEID" /> </key> <one-to-many

设置
Lazy=false
时,hibernate将自动将对象加载到所需的集合中,例如

<set name="Options" table="ATTRIBUTEOPTION" inverse="false"  cascade="all" lazy="false">
        <key>
            <column name="ATTRIBUTEID" />
        </key>
        <one-to-many class="com.BiddingSystem.Models.AttributeOption" />
</set>


但是如果在我的xml映射中,我将lazy=true放在应用程序的某个地方,我决定加载所有属性选项,是手动加载,还是有一种技术可以告诉hibernate现在我想设置
lazy=false

Yo可以使用getOptions()手动加载。但是,如果在加载实体时,您现在已经需要这些选项,那么您可以通过以下方式使用fetch join执行即时获取:

 select c from EntityX c left join fetch c.Options

这是一个重要的优化,因为如果你预取了你知道需要的数据,你可以避免很多额外的选择。

你可以使用getOptions()手动完成。但是,如果在加载实体时,您现在已经需要这些选项,那么您可以通过以下方式使用fetch join执行即时获取:

 select c from EntityX c left join fetch c.Options

这是一个重要的优化,因为如果预取需要的数据,可以避免很多额外的选择。

您不能在运行时更改配置。但是您可以使用
hibernate.initialize(..)
来初始化惰性集合。

您不能在运行时更改配置。但是您可以使用
hibernate.initialize(…)
来初始化惰性集合。

Ya,我已经在我的项目中包括了hibernate,现在我需要着手优化!!是的,我的项目中包括了hibernate,现在我需要开始优化!!