使用Warp-Persist升级Guice的依赖性问题

时间:2015-02-27 01:54:56

标签: hibernate dependencies guice guice-servlet guice-persist

我们有一个将Guice 1.0与warp-servlet和warp-persist一起使用的应用程序,我们希望升级到Guice 2或3.但是,我们正在访问正在制作的依赖关系网络它很复杂。

有没有人知道一种简单的方法(尽可能接近替换)要么使warp-persist与更新的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。

1 个答案:

答案 0 :(得分:1)

您可以从JPA实体管理器访问hibernate会话。这允许您使用远离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坚持似乎被抛弃了。