加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Project $$EnhancerByCGLIB $$67a694bd出现在Hibernate

发布时间:2020-12-14 05:44:45 所属栏目:Java 来源:网络整理
导读:我有一个文档实体多对一地映射到项目实体. 当我调用document.getProject时,在调试器中,在文档对象的项目字段中,我看到一些关于Project $$EnhancerByCGLIB $$67a694bd的内容. 如何检索实际项目对象? 解决方法 您所看到的是Hibernate-Proxy-Object,它使hibern
我有一个文档实体多对一地映射到项目实体.

当我调用document.getProject时,在调试器中,在文档对象的项目字段中,我看到一些关于Project $$EnhancerByCGLIB $$67a694bd的内容.

如何检索实际项目对象?

解决方法

您所看到的是Hibernate-Proxy-Object,它使hibernate能够进行惰性实例化.

首先要问自己的是,你是否真的想要访问原始对象.通常你最好假装代理是你的实际对象,让hibernate做所有的魔术.

如果由于某种原因你真的需要对象本身(例如,如果你需要确切的类型),下面的代码应该工作:

if (object instanceof HibernateProxy) {
   return ((HibernateProxy) object).getHibernateLazyInitializer().getImplementation();
}

您应该知道,上面编写的代码的结果将为您提供一个不再受休眠控制的分离对象,因此对象的更改将不会与数据库同步!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读