我決定使用Spring,Hibernate和Restlet來創建Web服務。我對這三種技術都很陌生。我的問題是:如何決定是使用JPA的EntityManager
還是Hibernate的HibernateTemplate
?JPA的EntityManager或Spring的HibernateTemplate
爲JPA的EntityManager的代碼片段:對Hibernate的HibernateTemplate的
protected EntityManager entityManager;
@PersistenceContext
public void setEngityManager(EntityManager entityManger) {
this.entityManager = entityManager;
}
代碼片段:
private SessionFactory sessionFactory;
private HibernateTemplate hibernateTemplate;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
但我聽說Hibernate API提供了一些JPA沒有的功能。你也使用JPQL而不是HQL嗎?(在開源社區中似乎對HQL有更大的支持)或者你只是使用SQL? – kasavbere
我們使用JPQL代替HQL,它已經解決了我們迄今爲止的所有用例。如果你需要在JPA規範中沒有對應的Hibernate的任何特定功能,你可以把它當作一個異常,使用entityManager.getDelegate獲得SessionFactory,但我懷疑這樣一個特定的需求是否不會有JPA語義本身的解決方法。 – Vikdor