3

我正在使用 Jax-RS 和 GSON 创建 Web 服务。现在,GSON 无法转换 HibernateProxy 对象,我有一些问题。我有一个 API,以便我可以急切加载和延迟加载。当我想进行 Eagerload 时,我使用 Hibernate.initialize(...)。然而,这似乎并不能保证一个对象是未经代理的?

那么,您将在何处、何时以及如何取消代理对象呢?当对象也可能与其他需要非代理的对象有关系时,你如何处理这个问题?

4

1 回答 1

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;
}
于 2013-11-26T06:40:51.150 回答