我在我的 hbm 映射文件中将惰性属性设置为“true”。但是我想通过代码动态更改“lazy=false”。我怎样才能做到这一点?
问问题
493 次
2 回答
1
您可以通过 HQL 或FetchMode.JOIN
通过 Criteria API 使用连接,在这种情况下,您将一次性获得关联。请注意,如果您使用关联对象,则不会从二级缓存中获取相关对象。
另一种选择是Hibernate.initialize()
或者只是调用object.getAssociation()
.
于 2012-11-23T18:33:02.723 回答
0
看sessionFactory.getClassMetadata(YourClass.class)
。它具有访问每个字段的方法。
然而,更文明的方法是使用 HQL 或 Criteria 查询覆盖获取策略。另一种选择是修改您的元数据(具有lazy="false"
)并重建会话工厂。它并不像看起来那么可怕。
于 2012-11-23T22:48:52.073 回答