使用 Hibernate 的延迟加载功能时,某些加载的对象可能会显示为代理。虽然延迟加载可以保持性能,但将代理导出到 GWT 客户端可能会带来挑战。本文探讨了一种将代理转换为真实实体对象、保持延迟加载、同时促进无缝 RPC 通信的解决方案。
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; }
此方法执行以下步骤:
以上是如何将 Hibernate 代理转换为无缝 GWT RPC 的真实实体?的详细内容。更多信息请关注PHP中文网其他相关文章!