EntityManager 和 DAO 有什么区别?

What's the difference beetwen EntityManager and DAO?

EntityManager 和 DAO 有什么区别?是一样的吗?

EntityManager 是JPA 提供的一个接口,它提供了用于持久化、合并、查找和创建实体查询的通用方法。

DAO 是一种模式,用于将数据库访问代码隔离在单独的组件 (DAO) 中,以便服务专注于业务逻辑而不是低级数据库内容。它有助于对服务进行单元测试和分离职责。

使用 JPA 时,您通常为每个实体编写一个 DAO,它将包含与该实体相关的所有 JPA 代码(主要是查询)。而这个 DAO 使用 EntityManager。