gpt4 book ai didi

java - hibernate 环境 : Initializing Envers Proxies

转载 作者:IT老高 更新时间:2023-10-28 20:35:33 24 4
gpt4 key购买 nike

在 Hibernate Envers 中,实体的所有相关集合都是延迟加载的,而不管设置了什么获取类型。因此,当对具有其他实体集合的实体进行审计查询时(当然都是经过审计的),该集合最初是一个 SetProxy(可以在调试时看到)。

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

我需要立即初始化它们,因为我稍后会在 Hibernate session 已经关闭(将域对象转换为 dtos)时访问集合。

我使用的是 Hibernate 3.5.6。

最佳答案

显然,这是 Hibernate Envers 的一个未解决问题。他们的 JIRA 中已经存在一个问题:https://hibernate.atlassian.net/browse/HHH-3552 .随意投票,也许它会加快速度,当他们看到有人希望解决这个问题时;)

在 Envers 团队解决此问题之前,有一个对我有用的解决方法:在集合上调用 size() 会初始化代理对象。

关于java - hibernate 环境 : Initializing Envers Proxies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com