首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java Hibernate Lazy=false

Java Hibernate Lazy=false
EN

Stack Overflow用户
提问于 2011-01-03 00:50:15
回答 2查看 3.2K关注 0票数 1

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

代码语言:javascript
复制
<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??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-03 01:19:51

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

票数 4
EN

Stack Overflow用户

发布于 2011-01-03 01:11:00

您只需使用getOptions()就可以手动完成此操作。但是,如果在加载实体时,您现在已经需要这些选项,那么您可以使用fetch join进行一次紧急获取,如下所示:

代码语言:javascript
复制
 select c from EntityX c left join fetch c.Options

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

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

https://stackoverflow.com/questions/4579378

复制
相关文章

相似问题

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