天天看点

Spring Boot-------JPA——EntityManager构建通用DAO

  EntityManager 是用来对实体Bean 进行操作的辅助类。他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean。实体Bean 被EntityManager 管理时,EntityManager跟踪他的状态改变,在任何决定更新实体Bean 的时候便会把发生改变的值同步到数据库中。当实体Bean 从EntityManager 分离后,他是不受管理的,EntityManager 无法跟踪他的任何状态改变。EntityManager 的获取前面已经介绍过,可以通过@PersistenceContext 注释由EJB 容器动态注入。

          

Spring Boot-------JPA——EntityManager构建通用DAO

一般的开发都是需要每一个实体类都要构建一个DAO去继承JPA的一些类,我不咋喜欢这样的感觉,我比较喜欢一个项目中简洁不乱,所有偷懒的写了一个四不像的通用DAO

1、首先可以去官网看一下,了解一下entitymanager的一些方法

persist() :添加实体Bean

flush() :将实体的改变立刻刷新到数据库中

merge () :比较麻烦,用好了很不错,配合flush

Remove() :删除对象

createQuery() :返回Query对象,以执行JPQL语句

createNativeQuery() :返回Query对象,以执行SQL语句

refresh() :刷新实体Bean,以得到对新对象

contains(): 检测实体当前是否被管理中

clear() 分离所有当前正在被管理的实体

2、用@PersistenceContext动态注入Entitymanager

先来一个BaseDAO 

Spring Boot-------JPA——EntityManager构建通用DAO
Spring Boot-------JPA——EntityManager构建通用DAO

再写一个实现类BaseDAOimpl,其中注意的是@Transactional事务的注入

Spring Boot-------JPA——EntityManager构建通用DAO
Spring Boot-------JPA——EntityManager构建通用DAO

这一套就可以完成一个项目的差不多增删改查了,需要其他特殊功能的可以自行添加

Spring Boot-------JPA——EntityManager构建通用DAO
Spring Boot-------JPA——EntityManager构建通用DAO
Spring Boot-------JPA——EntityManager构建通用DAO
Spring Boot-------JPA——EntityManager构建通用DAO
Spring Boot-------JPA——EntityManager构建通用DAO