0

我决定使用 Spring、Hibernate 和 Restlet 来创建 Web 服务。我对这三种技术都很陌生。我的问题是:我如何决定是使用 JPAEntityManager还是 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);
}
4

2 回答 2

1

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

于 2012-09-23T18:31:20.803 回答
0

如果hibernate以后还想坚持,那用不着EntityManagerFactory,可以继续用SessionFactory。并且只需使用基于 java 的配置或 xml 为此注入定义。它必须在application context. 但是将来如果您可能想转移到不同的 jpa 提供商,例如 toplink 等,那么您应该使用 EntityManagerFactory,因为它允许您从各种提供商那里获得实现。因为提供者实现了 jpa 规范。因此,将来您只需要在应用程序上下文中进行不同的配置,您就应该能够使用它。

于 2017-08-01T13:20:33.993 回答