我决定使用Spring,Hibernate和Restlet来创建一个Web服务。我是所有这三种技术的新手。我的问题是:我如何决定是使用JPA的EntityManager
还是Hibernate的HibernateTemplate
?
JPA的EntityManager代码片段:
protected EntityManager entityManager;
@PersistenceContext
public void setEngityManager(EntityManager entityManger) {
this.entityManager = entityManager;
}
Hibernate的HibernateTemplate的代码片段:
private SessionFactory sessionFactory;
private HibernateTemplate hibernateTemplate;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
答案 0 :(得分:1)
如果您是喜欢interface-based-implementation
的人,则JPA是接口定义,Hibernate是其中一个实现。我们决定在我们的项目中使用JPA语义(有一个非常长期的计划,用类似的东西取代Hibernate,可能很轻)。
答案 1 :(得分:0)
如果您希望将来坚持hibernate
,那么使用EntityManagerFactory
毫无意义,您可以继续使用SessionFactory
。并使用基于java的配置或xml为此注入定义。它必须在application context
中可用。
但是将来如果你想转移到不同的jpa提供者,比如toplink等,那么你应该使用EntityManagerFactory,因为它允许你从各种提供者那里获得实现。因为提供者实现了jpa规范。因此,将来您只需要在应用程序上下文中使用不同的配置,并且您应该能够使用它。