首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Hibernate 3延迟加载多对一字段在将cascade设置为"all“时不起作用

Hibernate 3延迟加载多对一字段在将cascade设置为"all“时不起作用
EN

Stack Overflow用户
提问于 2011-12-23 20:05:27
回答 1查看 1.6K关注 0票数 1

我在映射文件中定义了一个多对一字段,其中lazy=为“no-proxy”,cascade=为“none”。字节码工具ant任务已经完成。而且我让延迟加载运行得很好。

但是,当我将级联改为"all“时,延迟加载就不起作用了。并且所有其他的惰性属性也被急切地加载。

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

当cascade=为“none”时,在调用session.load(A.class,longid)之后,没有加载属性emailAdr、contact和testb,这是我所期望的。

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

代码语言:javascript
运行
AI代码解释
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2011-12-23 20:41:41

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

通常,如果ORM急于加载延迟映射的ManyToOne对象,这不是问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8620180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档