spring-data知识点记载
来源:互联网 发布:ipad能刷windows系统吗 编辑:程序博客网 时间:2024/06/05 19:18
spring data
1.Repository是一个空接口,
2.若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个
Repository Bean,纳入到ioc容器中,进而可以再该接口中定义满足一定规范的方法
3.Repository的子接口
CRUDRepository 实现了 CRUD
pagingAndSortintRepository 分页排序
JPARepository 实现了一组JPA 规范的方法
自定义的Repository 需要继承 JPARepository
JPASpecificationExecutor不是repository
定义方法的规范
1.查询: 以find|read|get开头
涉及条件查询时,条件的属性用条件关键字连接
要注意的是:条件属性以首字母大写
关键字包括:And,Or,Between,LessThan,GreaterThan,After,Before,isNull
isNotNull,NotNull
Like,NotLike,StartIngWith,EndingWith,Containing,OrderBy,
Not,In,NotIn,TRUE,FALSE
支持属性的接连查询(但是需要在实体类中配置映射关系),若当前类存在符合条件的属性m则优先使用 当前类中属性,若需要使用级联属性,则属性间使用下划线连接
例如: getByLastnameStartIngWithAndAgeLessThan("x",12)
Query注解(可以自定义JPQL语句来实现更灵活的查询)
(可实现复杂查询,带子查询,比如最大最小等等)
1.使用占位符
SELECT p FROM PERSON p WHERE p.lastname = ?1 AND p.eamil = ?2
SELECT p FROM PERSON p WHERE p.lastname like %?1% AND p.eamil like %?2%
这个JPQL都对应 接口方法中 参数的 顺序
2.使用命名参数
SELECT p FROM PERSON p WHERE p.lastname = :lastname AND p.eamil = :email
SELECT p FROM PERSON p WHERE p.lastname like %:lastname% AND p.eamil like %:email%
这个JPQL都对应 接口方法中 参数的名称 以及在参数前需要加@Param("")注解
3.支持原生的SQL
@Query(vakue="SELECT count(id) FROM jpa_persons",nativeQuery=true)
@MODIFY注解(修饰代表这是一个 update或delete操作) 需要事务管理
@MODIFY 可以通过此方式 update,delete ,但不支持insert
@Query("UPDATE PERSON p SET p.email = :email WHERE id = :id")
1.Repository是一个空接口,
2.若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个
Repository Bean,纳入到ioc容器中,进而可以再该接口中定义满足一定规范的方法
3.Repository的子接口
CRUDRepository 实现了 CRUD
pagingAndSortintRepository 分页排序
JPARepository 实现了一组JPA 规范的方法
自定义的Repository 需要继承 JPARepository
JPASpecificationExecutor不是repository
定义方法的规范
1.查询: 以find|read|get开头
涉及条件查询时,条件的属性用条件关键字连接
要注意的是:条件属性以首字母大写
关键字包括:And,Or,Between,LessThan,GreaterThan,After,Before,isNull
isNotNull,NotNull
Like,NotLike,StartIngWith,EndingWith,Containing,OrderBy,
Not,In,NotIn,TRUE,FALSE
支持属性的接连查询(但是需要在实体类中配置映射关系),若当前类存在符合条件的属性m则优先使用 当前类中属性,若需要使用级联属性,则属性间使用下划线连接
例如: getByLastnameStartIngWithAndAgeLessThan("x",12)
Query注解(可以自定义JPQL语句来实现更灵活的查询)
(可实现复杂查询,带子查询,比如最大最小等等)
1.使用占位符
SELECT p FROM PERSON p WHERE p.lastname = ?1 AND p.eamil = ?2
SELECT p FROM PERSON p WHERE p.lastname like %?1% AND p.eamil like %?2%
这个JPQL都对应 接口方法中 参数的 顺序
2.使用命名参数
SELECT p FROM PERSON p WHERE p.lastname = :lastname AND p.eamil = :email
SELECT p FROM PERSON p WHERE p.lastname like %:lastname% AND p.eamil like %:email%
这个JPQL都对应 接口方法中 参数的名称 以及在参数前需要加@Param("")注解
3.支持原生的SQL
@Query(vakue="SELECT count(id) FROM jpa_persons",nativeQuery=true)
@MODIFY注解(修饰代表这是一个 update或delete操作) 需要事务管理
@MODIFY 可以通过此方式 update,delete ,但不支持insert
@Query("UPDATE PERSON p SET p.email = :email WHERE id = :id")
阅读全文
0 0
- spring-data知识点记载
- android琐碎知识点记载
- c#基础知识点记载
- lua琐碎知识点记载
- spring 组件作用记载
- 我的博客,专注记载,收藏知识点!
- 记载
- 记载
- 记载
- spring batch 持久化表结构记载
- web.xml 记载spring 配置文件的写法
- 记载一些容易忽略但是重要的知识点
- oracle data guard 知识点
- spring知识点
- Spring--知识点
- Spring 知识点
- spring知识点
- spring知识点
- 相似三角形
- bzoj3714: [PA2014]Kuglarz
- 日历界面实现(一次输出三个月)
- Caffe之具体运行流程分析
- IT求职部分网站汇总
- spring-data知识点记载
- golang cannot assign to
- HDU 1719 Friend(规律)
- iOS:tableView刷新闪烁问题解决
- Construct2 游戏进阶制作
- 常用的正则表达式大全
- 素数筛
- VS2015静态编译libcurl(C++ curl封装类)
- Django中button的处理 & ajax提交数据时不走Form组件验证