我对概念有疑问,我想我在混合一些东西。我有一个带有 DAO 层的应用程序,这些 DAO 的实现使用 SessionFactory (Hibernate) 来执行 CRUD 操作,我还有一个服务层并使用 Spring 声明式事务管理我的工作单元,一切正常,我不确定是否使用 EntityManager 但似乎它所做的是管理我的工作单元(与我使用 Spring 所做的相同)。
我什么时候应该使用 EntityManager?使用它有什么好处?我为什么要使用它?
谢谢你。
我对概念有疑问,我想我在混合一些东西。我有一个带有 DAO 层的应用程序,这些 DAO 的实现使用 SessionFactory (Hibernate) 来执行 CRUD 操作,我还有一个服务层并使用 Spring 声明式事务管理我的工作单元,一切正常,我不确定是否使用 EntityManager 但似乎它所做的是管理我的工作单元(与我使用 Spring 所做的相同)。
我什么时候应该使用 EntityManager?使用它有什么好处?我为什么要使用它?
谢谢你。
EntityManager 用于 JPA,SessionFactory 用于 Hibernate。即使您使用 JPA,Spring 仍然可以管理您的事务。如果您的 JPA 提供者是 Hibernate,那么您可以安全地混合和匹配 Hibernate 和 JPA 的东西,因为它们可以一起工作。
现在谈到何时使用 EntityManager 和优点的问题:
如果您正在开始一个新项目并且可以使用 JPA 2,那么我建议您开始使用它,因为 JPA 是规范(意味着如果您坚持规范,那么您可以在不更改代码的情况下更改实现。Eclipseling、DataNucleus、 OpenJPA 是 JPA 规范的一些示例实现)。如果您不能迁移到 JPA 2,那么我建议您坚持使用 Hibernate。
还可以浏览以下帖子