代码之家  ›  专栏  ›  技术社区  ›  kasavbere

JPA的EntityManager或Hibernate的带有Spring的Hibernate模板

  •  1
  • kasavbere  · 技术社区  · 13 年前

    我决定使用Spring、Hibernate和Restlet来创建一个web服务。我对这三种技术都是新手。我的问题是:如何决定是否使用JPA EntityManager 或Hibernate的 HibernateTemplate ?

    JPA的EntityManager的代码段:

    protected EntityManager entityManager;
    
    @PersistenceContext
    public void setEngityManager(EntityManager entityManger) {
        this.entityManager = entityManager;
    }
    

    Hibernate的Hibernate模板的代码片段:

    private SessionFactory sessionFactory;
    private HibernateTemplate hibernateTemplate;
    
    @Autowired
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
        this.hibernateTemplate = new HibernateTemplate(sessionFactory);
    }
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   Vikdor    13 年前

    如果你喜欢 interface-based-implementation ,那么JPA是接口定义,Hibernate是实现之一。我们决定在我们的项目中使用JPA语义(有一个非常长期的计划,可能会用类似的轻量级东西取代Hibernate)。

        2
  •  0
  •   Bhagwati Malav    8 年前

    如果你想坚持 hibernate 将来,那么使用没有意义 EntityManagerFactory ,您可以继续使用 SessionFactory 。只需使用基于java的配置或xml为其注入定义即可。必须在中提供 application context 。 但在未来,如果您可能想转移到不同的jpa提供程序,如toplink等,那么您应该使用EntityManagerFactory,因为它允许您从不同的提供程序实现。因为提供者实现了jpa规范。所以在未来,您只需要在应用程序上下文中有不同的配置,并且您应该能够使用它。