当前位置: 首页 > 面试题库 >

休眠:在Criteria API中启用延迟抓取

充普松
2023-03-14
问题内容

我正在针对域模型(由于某种原因)使用lazy =“
false”映射一对多关联的查询。在我的特定查询中,我宁愿延迟获取该集合,因为我不在乎其内容。如何为我的特定查询重新启用懒惰?这有可能吗?

到目前为止,我已经看过了Criteria.setFetchMode,但是FetchMode.LAZY它仅仅是FetchMode.SELECT
的不推荐使用的别名。

更改映射可能是理想的选择,但是我宁愿冒险影响现有查询。

编辑:我们使用Hibernate 3.3.2


问题答案:

我自己不是专家,但是浏览Hibernate书籍并与同事协商并没有给我任何暗示,表明这是可能的,相反。

您的情况似乎很特殊,Hibernate并未对此进行介绍。典型的用例则相反:默认情况下使用懒惰提取,并在有理由的查询中有选择地启用急切获取。



 类似资料:
  • 问题内容: 我在spring使用Hibernate。 我有这样的模型班。 它通常可以正常工作,但是Category不会延迟加载,而是在ForumEntry加载后急切加载。 `` 完全没有将getter称为ForumCategory是在ForumTopic之后立即加载的。 这个问题出现在我所有的@ManyToOne关联中。但是,@OneToMany关联会延迟加载。 我正在使用maven2进行构建。这

  • 问题内容: 我遇到了一个问题,JPA试图在我不想要的时候延迟加载我的数据。从本质上讲,正在发生的事情是我正在使用Service检索一些数据,并且当我将这些数据解析为JSON时,JSON库正在触发hibernate模式以尝试懒惰地加载数据。有什么办法可以阻止这种情况?我在下面给出一个例子。 是否可以将JPA /hibernate设置为不尝试并延迟加载数据? 更新: 我意识到您可以使用FetchTyp

  • 问题内容: 我有两个表,并且在数据库中。在表中,我有一个Integer 对该表的引用。(idA是B的外键)当我使用hibernate- tools进行反向工程时,会生成两个Java对象。 和 但是我想要 我怎样才能做到这一点? 谢谢, 问题答案: 因此,我找到了一个解决方案:创建一个自定义并将方法的返回更改为。

  • 延迟异步函数的执行。 延迟执行 async 函数的一部分,通过把它放到 sleep 状态,返回一个 Promise 。 const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); async function sleepyWork() { console.log("I'm going to sleep for 1

  • 问题内容: 我遇到了 一个 问题,即 一对一的延迟加载 在hibernate状态下不起作用。我 已经解决了它 ,但仍然 无法 正确 理解 会发生什么。 我的代码( 延迟加载在这里不起作用 ,当我拉人时-地址也被获取): 但是 :如果我添加 OneToOne关系,则延迟加载 效果很好 ! 问题/完整性: 请向我解释注释如何帮助实现延迟加载。 PS 我已经阅读了post1和post2的帖子,并了解了为

  • 问题内容: 我正在使用Spring事务,因此当POJO到DTO转换时,该事务仍然处于活动状态。 我想防止Dozer触发延迟加载,以使隐藏的sql查询永远不会发生:所有获取都必须通过HQL显式完成(以获得对性能的最佳控制)。 这是一个好习惯吗(我在任何地方都找不到它)? 如何安全地做? 我在DTO转换之前尝试了这个: 我不知道事务会发生什么,但是Hibernate会话不会关闭,并且仍然会发生延迟加载