0

我们有一个使用带有 warp-servlet 和 warp-persist 的 Guice 1.0 的应用程序,我们想升级到 Guice 2 或 3。但是,我们遇到了一个复杂的依赖关系网络。

有谁知道一种简单的方法(尽可能接近直接替换)使经纱持久与较新的 Guice 一起工作,或者使 Guice-persist 与直接的 Hibernate 一起工作?

  • Warp-persist 需要 warp-servlet
  • Warp-servlet 和 warp-persist 仅支持 Guice 1.0
  • Guice-persist 似乎是 warp-persist 的替代品,但它只支持 JPA,而我们直接使用 Hibernate(有大量基于标准的代码遗留下来,这使得移植到 JPA 变得不简单)。
  • Guice-persist 还声称有一种支持非 JPA 数据访问的方法,但似乎没有任何关于此的文档。
  • Warp-persist 似乎不支持 Hibernate 4,所以我们也无法升级 Hibernate。
4

1 回答 1

1

您可以从 JPA 实体管理器访问休眠会话。这允许您使用 migrate away from warp。

@Singleton
public class SessionProvider implements Provider<Session> {

    /** The entity manger to retrieve the session from. */
    @Inject
    private Provider<EntityManager> entityManagerProvider;

    /**
    * @return the Hibernate session, being the delegate of the entity manager provided by the injected entity manager provider.
    */
    @Override
    public Session get() {
        final Session session = (Session) entityManagerProvider.get().getDelegate();
        return session;
    }
}

您需要做的就是将 Hibernate 配置为您的 JPA 实现。我也建议使用 onami persist。Guice坚持似乎被抛弃了。

于 2015-06-28T21:42:02.347 回答