Java如何将Hibernate代理转换为真实实体对象
在Hibernate期间Session
,我正在加载一些对象,由于延迟加载,其中一些对象已作为代理加载。一切正常,我不想关闭延迟加载。
但是稍后我需要通过RPC将一些对象(实际上是一个对象)发送到GWT客户端。碰巧这个具体对象是代理。所以我需要将其变成一个真实的对象。我在Hibernate中找不到类似“实现”的方法。
如何知道某些对象的类和ID,将它们从代理变为实物?
目前,我看到的唯一解决方案是从Hibernate
的缓存中逐出该对象并重新加载它,但是由于许多原因,它确实很糟糕。
回答:
这是我正在使用的方法。
public static <T> T initializeAndUnproxy(T entity) { if (entity == null) {
throw new
NullPointerException("Entity passed for initialization is null");
}
Hibernate.initialize(entity);
if (entity instanceof HibernateProxy) {
entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer()
.getImplementation();
}
return entity;
}
以上是 Java如何将Hibernate代理转换为真实实体对象 的全部内容, 来源链接: utcz.com/qa/426289.html