0

我在我的 hbm 映射文件中将惰性属性设置为“true”。但是我想通过代码动态更改“lazy=false”。我怎样才能做到这一点?

4

2 回答 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 回答