首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate OnDemand急取

Hibernate OnDemand急取
EN

Stack Overflow用户
提问于 2012-10-24 19:12:14
回答 2查看 1.3K关注 0票数 2

我知道如何配置我的模型来获取渴望或懒惰。但是,我应该如何告诉我的应用程序这次急切地获取集合呢?

换句话说。我有一个带有get方法的DAO。EntityDao.getEntity(entityId)这个实体有一个Children集合,默认情况下是延迟加载的。

假设dao-method是事务性的。

大多数时候,我只需要没有孩子的实体,但偶尔我需要急切地获取孩子。现在我该怎么做呢?

如果我理解正确的话,那么会话只存在于事务中。因此,在事务结束后(在这种情况下,在dao-method之后),就不能再执行延迟获取了。因此,我可以将我的事务放在代码中,或者急切地在事务中获取我的对象?

那么,我该如何在我的事务中执行这种急取呢?

我有什么选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-24 19:33:48

你不应该在dao中做事务。事务应该跨越整个业务操作,这就是拥有事务的意义。

您还可以销毁延迟加载。它对调用者应该是透明的,这是当会话仍然可用并且在访问它们时加载子会话时的情况。在关闭会话之后,延迟加载不再可能,应该访问实体。

票数 -1
EN

Stack Overflow用户

发布于 2012-10-24 19:19:12

您应该使用hibernate的fetch profile功能,有关详细信息和example,请参阅doc

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

https://stackoverflow.com/questions/13048068

复制
相关文章

相似问题

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