EntityManager + Spring Transactional Question

时间:2010-12-27 06:07:42

标签: hibernate spring orm jpa entitymanager

我对概念有疑问,我认为我正在混合一些东西。我有一个DAO层的应用程序,那些DAO的实现使用SessionFactory(Hibernate)来执行CRUD操作,我还有一个服务层并用Spring Declarative Transaction管理我的工作单元,一切正常,我不确定是否使用EntityManager,但似乎它所做的是管理我的工作单元(我在使用Spring时也是如此)。

我什么时候应该使用EntityManager? 使用它有什么好处? 我为什么要用它?

谢谢。

1 个答案:

答案 0 :(得分:2)

EntityManager用于JPA是什么SessionFactory用于Hibernate。即使您正在使用JPA,Spring仍然可以管理您的交易。如果您的JPA提供程序是Hibernate,那么您可以安全地混合和匹配Hibernate和JPA,因为它们可以一起工作。

现在讨论何时使用EntityManager及其优点:

如果您正在开始一个新项目并且如果您可以使用JPA 2,那么我建议您开始使用它,因为JPA是规范(意味着如果您坚持规范,那么您可以在不更改代码的情况下更改实现.Eclipseling ,DataNucleus,OpenJPA是JPA规范的一些示例实现。如果你不能转到JPA 2那么我建议你坚持使用Hibernate。

另请阅读以下帖子

What does Hibernate/Toplink offer above JPA?

JPA or Hibernate for Java Persistence?

JPA 1 is not good enough