spring Data

1、配置数据源:

2、配置JPA的EntityManagerFactory

3、配置事务管理器

4、配置支持注解的事务

5、配置SpringData

实体类:

创建查询方法的接口:

测试:

Repository :

1. Repository 是一个空接口。 即是一个标记接口
2.若我们定义的接口继承了Repository,则该接口会被IOC容器识别为-个Repository Bean.
纳入到IOC容器中。进而可以在该接口中定义满足-定规范的方法。
3.实际上,也可以通过@RepositoryDefinition注解来替代继承Repository接口

支持的关键字
直接在接口中定义查询方法,如果是符合规范的,可以不用写实现,目前支持的关键字写法如下:

在Repository子接口中声明方法
1.不是随便声明的。而需要符合一定的规范
2.查询方法以find| read| get 开头
3.涉及条件查询时,条件的属性用条件关键字连接
4.要注意的定:条件属性以首字母大写。
5.支持属性的级联查询。若当前类有符合条件的属性,则优先使用,而不使用级联属性.
若需要使用级联属性,则属性之间使用_进行连接。

使用@Query 注解可以自定义JPQL语句以实现更灵活的查询

为@Query 注解传递参数的方式1:使用占位符。


为@Query注解传递参数的方式1:命名参数的方式.

设置nativeQuery=true即可以使用原生的SQL查询

可以通过自定义的JPQL 完成UPDATE 和DELETE 操作。注意: JPQL不支持使用INSERT
在@Query 注解中编写JPQL语句,但必须使用@Modifying 进行修饰。以通知SpringData, 这是一个UPDATE 或DELETE 操作
UPDATE或DELETE操作需要使用事务,此时需要定义Service层。在Service层的方法,上添加事务操作。
默认情况下,SpringData 的每个方法上有事务,但都是一个只读事务。他们不能完成修改操作!

Repository中子接口的使用

CrudRepository:

在Service中打开事务操作:

在测试中直接调用UpdatePersonEmail即可。

PagingAndSortingRepository

JpaRepository

JpaSpecificationExecutor:

目标:实现带查询条件的分页。id > 5的条件
调用JpaSpecificationExecutor的Page<T> findAll(Specification<T> spec, Pageable pageable);
Specification:封装了JPA Criteria查询的查询条件
Pageable:封装了请求分页的信息:例如pageNo, pageSize, Sort
测试:

为某一个Repository 上添加自定义方法
步骤:
1、定义一个接口:声明要添加的,并自实现的方法


2、提供该接口的实现类:类名需在要声明的Repository后添加Impl,并实现方法声明Repository接口,并继承步骤1声明的接口:


使用:
注意:默认情况下, Spring Data会在base- package中查找"接口名Impl"作为实现类.也可以通过repository-impl-postfix声明后缀.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值