概述
JPARepository
查询的方式:
1. 借助接口中定义好的方法完成查询
2. 使用Specification接口中的方法查询
3. 使用jpql语句查询,需要在方法上添加@Query注解
4. 使用原生的sql语句查询,需要在方法上添加@Query注解, nativeQuery = true
@Query注解中可以使用占位符,默认情况下,占位符的位置需要和方法参数中的位置保持一致
可以指定占位符参数的位置,?1代表取第一个参数,?2代表 取第二个参数
@Modifying 使用@Query注解时,更新或者删除操作需要在方法上加上这个注解
还需要在service层中添加@Transactional注解添加事务支持
事务默认结束后会回滚事务,还需要添加@Rollback(value=false)
findOne(id) 根据id查询
save()
保存或者更新,根据传递的对象是否存在主键id,如果没有id主键属性,保存。存在id主键属性,根据id查询数据,更新数据
delete() 根据id删除数据
findAll() 查询全部
count() 查询全部的数量
exists() 查询是否存在
getOne() 根据id从数据库查询, getOne() 延迟加载,findOne() 立即加载
Specification查询
需要实现JpaSpecificationExecutor接口
自定义我们的specification实现类,有三个参数
root: 查询的根对象(查询的任何属性都可以从根对象中获取)
criteriaQuery: 顶层查询对象,自定义查询方式(了解,一般不用)
criteriaBuilder:查询的构造器,封装了很多的查询条件
多表的查询
1. 对象导航查询
查询一个对象的同时,通过此对象查询他的关联对象
对象导航查询默认使用的是延迟加载的形式查询,调用get方法并不会立即发送查询,而是在使用关联对象的时候才会查询
修改配置,可以将延迟加载改为立即加载, fetch:需要配置到多表映射关系的注解上
从一方查询多方:默认使用延迟加载
从多方查询一方:默认使用立即加载
最后
以上就是微笑发卡为你收集整理的jpa常用方法的全部内容,希望文章能够帮你解决jpa常用方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复