我有一个文档实体多对一地映射到项目实体.
当我调用document.getProject时,在调试器中,在文档对象的项目字段中,我看到一些关于Project $$EnhancerByCGLIB $$67a694bd的内容.
如何检索实际项目对象?
解决方法
您所看到的是Hibernate-Proxy-Object,它使hibernate能够进行惰性实例化.
首先要问自己的是,你是否真的想要访问原始对象.通常你最好假装代理是你的实际对象,让hibernate做所有的魔术.
如果由于某种原因你真的需要对象本身(例如,如果你需要确切的类型),下面的代码应该工作:
if (object instanceof HibernateProxy) { return ((HibernateProxy) object).getHibernateLazyInitializer().getImplementation(); }