Hibernate Envers:初始化Envers代理

Jim*_*den 25 java proxy hibernate lazy-loading hibernate-envers

在Hibernate Envers中,无论设置了哪种获取类型,都会延迟加载实体的所有相关集合.因此,当审计具有其他实体集合的实体(当然都是经过审计)时,该集合SetProxy最初是(在调试时可以看到).

那么,我该如何初始化该代理呢?使用Hibernate.initialize()没有效果(我怀疑是因为Hibernate和Envers使用不同的代理对象).我知道我可以通过迭代它的项目来初始化集合,但这对我来说不是一个选项,因为我在一个实体中有多个集合,更不用说维护问题了.

我需要急切地初始化它们,因为我在Hibernate会话已经关闭的时候访问该集合(将域对象转换为dtos).

我正在使用Hibernate 3.5.6.

Jim*_*den 15

显然,这是Hibernate Envers的一个开放性问题.他们的JIRA已经存在一个问题:https://hibernate.atlassian.net/browse/HHH-3552.随意投票,也许它会加速,当他们看到有些人希望这个被修复;)

在Envers团队修复此问题之前,有一个适用于我的工作:调用size()集合初始化代理对象.