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