Hibernate 3延迟加载多对一字段在将cascade设置为“时不起作用”;“全部”;

Hibernate 3延迟加载多对一字段在将cascade设置为“时不起作用”;“全部”;,hibernate,lazy-loading,cascade,many-to-one,Hibernate,Lazy Loading,Cascade,Many To One,我在映射文件中使用lazy=“no proxy”和cascade=“none”定义了多对一字段。 字节码仪器ant任务已经完成。我可以很好地完成惰性加载 但是,当我将级联更改为“all”时,延迟加载不起作用。所有其他惰性属性也都被急切地加载 这里我的问题是,为什么设置cascade=“all”时延迟加载不起作用? 在设置cascade=“all”时,是否有任何解决方案可以使多对一延迟加载工作 在调用session.load(A.class,longid)之后,如果cascade=“none”,则

我在映射文件中使用lazy=“no proxy”和cascade=“none”定义了多对一字段。 字节码仪器ant任务已经完成。我可以很好地完成惰性加载

但是,当我将级联更改为“all”时,延迟加载不起作用。所有其他惰性属性也都被急切地加载

这里我的问题是,为什么设置cascade=“all”时延迟加载不起作用? 在设置cascade=“all”时,是否有任何解决方案可以使多对一延迟加载工作

在调用session.load(A.class,longid)之后,如果cascade=“none”,则不会加载属性emailAdr、contact和testb,这是我所期望的

但是,当将级联更改为“all”时,在调用session.load(A.class,longid)时,所有惰性字段都被急切地加载


延迟加载只是ORM实现的一个提示。可能是,如果您将级联定义为“全部”,hibernate“决定”急切地加载实体是最佳选择


一般来说,如果ORM急切地加载惰性映射的多个One对象,这不是问题。

你说惰性加载不起作用是什么意思?
<hibernate-mapping>
    <class name="com.abc.TestA" lazy="false" table="TBL_TESTA">
        <id name="oid" type="java.lang.Long" unsaved-value="null" column="OID">
            <generator class="com.abc.IdentifierGenerator"/>
        </id>
        <version column="VER_NUM" name="verNum" type="long"/>

        <property name="emailAdr" type="java.lang.String" lazy="true" column="EMAIL_ADR" >

        <many-to-one name="contact" class="com.abc.SetupContact" lazy="no-proxy" cascade="none" not-null="true">
            <column name="CNTCT_OID"/>
        </many-to-one>

        <one-to-one name="testb" class="com.abc.TestB" lazy="no-proxy" cascade="none"/>
    </class>
</hibernate-mapping>