优雅的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; }