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

我有一个文档实体多对一地映射到项目实体.

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

如何检索实际项目对象?

解决方法

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

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

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

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

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

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...