优雅的unproxy Hibernate对象方式
我正在使用Jax-RS和GSON创建Web服务。 现在,GSON无法转换HibernateProxy对象,我有一些问题。 我有一个API,所以我可以急切加载和延迟加载。 当我想要eagerload时,我使用Hibernate.initialize(…)。 但是,这似乎并不能保证对象不被代理?
那么你何时,何时以及如何解开对象? 当对象也可能与其他需要不复制的对象有关时,你如何处理这个?
这是一个示例代码:
public List
unproxy(Collection
objects) { Session session = sessionFactory.getCurrentSession(); List
result = new ArrayList
(); for (P t : objects) { Object unproxied = ((SessionImplementor)session).getPersistenceContext().unproxy(t); result.add((P) unproxied); } return result; }