Hibernate - 如何通过编码动态设置惰性属性

时间:2012-11-23 18:29:44

标签: hibernate

我在我的hbm映射文件中将lazy属性设置为“true”。但是我想通过代码动态更改“lazy = false”。我怎么能实现这个目标呢?

2 个答案:

答案 0 :(得分:1)

您可以通过HQL使用连接,也可以通过Criteria API使用FetchMode.JOIN,在这种情况下,您可以一次性获得关联。请注意,如果您使用它,则不会从二级缓存中获取关联的对象。

另一个选项是Hibernate.initialize()或只是调用object.getAssociation()

答案 1 :(得分:0)

看看sessionFactory.getClassMetadata(YourClass.class)。它有访问每个字段的方法。

然而,更文明的方式是使用HQL或Criteria查询覆盖提取策略。另一种选择是修改元数据(具有lazy="false")并重建会话工厂。它看起来并不那么可怕。