我正在针对域模型编写查询,其中(无论出于何种原因)一对多关联与lazy ="false"映射.在我的特定查询中,我宁愿懒惰地获取该集合,因为我不关心它的内容.如何为我的特定查询重新启用懒惰?这有可能吗?
到目前为止,我看了一下Criteria.setFetchMode
,但FetchMode.LAZY
仅仅是一个被弃用的别名FetchMode.SELECT
......
更改映射可能是理想的,但我宁愿不冒风险影响现有查询.
编辑:我们使用Hibernate 3.3.2
che*_*ara 26
接受的答案是错误的.Hibernate允许您在标准中懒惰获取默认情况下在映射中急切的东西.只需致电
criteria.setFetchMode("propertyName", FetchMode.SELECT);
Run Code Online (Sandbox Code Playgroud)
我试过这个并且有效.FetchMode.LAZY在源代码中被标记为已弃用,它所做的只是指向FetchMode.SELECT
Hibernate代码:
public static final FetchMode LAZY = SELECT;
Run Code Online (Sandbox Code Playgroud)
Pét*_*rök -6
我自己不是专家,但是浏览 Hibernate 书籍并咨询同事并没有给我任何暗示这是可能的,相反。
你的情况似乎是一种不寻常的情况,Hibernate 没有涵盖。典型的用例是相反的:默认使用延迟获取,并有选择地在合理的情况下对查询启用急切获取。
归档时间: |
|
查看次数: |
22694 次 |
最近记录: |