1

我正在尝试使用已离开连接提取(在惰性关联上)的查询进行缓存,但是LazyInitianlizationException当我对查询启用缓存时,我得到了一个。

我尝试Hibernate.initialize()在集合上DAO使用但没有成功。

实体和集合都有缓存注释。

hibernate 不应该使用二级缓存来加载查询缓存中集合 id 的实体吗?

我不想使用OpenSessionInView过滤器。

编辑: dao 方法中的 Hibernate.initialize() 解决了这个问题。由于某种原因,第一次它没有工作。使用查询或条件时,不执行连接/获取配置文件。需要手动完成。(有点失望)

4

2 回答 2

0

执行初始化时您还在事务中吗?

于 2013-09-06T20:06:08.363 回答
0

当我检查 Hibernate 代码时,看起来 Hibernate 在使用 HQL 查询时无法重用缓存(它没有从 HQL 到其缓存机制的编译器)。

阅读互联网有关LazyIntializationException您会发现问题的可能根源。

但是,坦率地说,我可以推荐你宁愿使用fjorm。免责声明:我是 fjorm 的创始人。

于 2013-09-16T14:45:50.160 回答