jpa常用方法

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:需要配置到多表映射关系的注解上

从一方查询多方:默认使用延迟加载

从多方查询一方:默认使用立即加载

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值