优雅的unproxy Hibernate对象方式

时间:2012-11-17 20:48:09

标签: java java-ee jax-rs gson

我正在使用Jax-RS和GSON创建Web服务。现在,GSON无法转换HibernateProxy对象,我有一些问题。我有一个API,所以我可以急切加载和延迟加载。当我想要eagerload时,我使用Hibernate.initialize(...)。但是,这似乎并不能保证对象没有代码?

那么你何时,何时以及如何解开一个对象?当对象也可能与其他需要不复制的对象有关时,你如何处理这个?

1 个答案:

答案 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;
}