首页 > 解决方案 > ScrollableResults.get() 提供代理而不是真实实体

问题描述

我在将 Hibernate-ORM 从 4.3.11 升级到 5.2.18 时遇到问题。

我执行查询并收到结果作为 ScrollableResults 对象。以前在 Hibernate 4 ScrollableResults.get() 中返回实体本身,但现在在 Hibernate 5 中我收到了代理。我检查过,在这两种情况下,休眠会话都将该实体作为代理。

这种新情况会导致问题,因为在下一步中我想使用 BeanUtils.cloneBean() 克隆该对象。现在,我收到的不是新对象,而是所有字段都具有空值的实体。我知道我可以在克隆过程之前取消代理用户,但这对我来说是最不感兴趣的解决方案。

我的问题是为什么 ScrollableResults 现在提供代理,以及如何强制它给我实体。也许来自 Hibernate Team 的人可以解释一下发生了什么变化?

问候!

标签: javahibernatejpaorm

解决方案


推荐阅读