为了账号安全,请及时绑定邮箱和手机立即绑定

JPA使用小记

标签:
Java

在spring boot中与MySQL交互时,使用了JPA规范,特此记录


Jpa(java persistenceapi)JAVA持久化API定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。

在spring框架中,可以通过继承JpaRespository<T,L>的方式来实现与数据库的交互,其中T为数据表所对应的实体,一般是model类,L为该实体主键的类型

1、当查询比较简单的时候,直接通过其findByxxx方法查询,只要符合该方法的命名规范就可以直接查询到数据;

List<T> findAll();
List<T> findAll(Sort sort);
List<T> findAll(Iterable<ID> ids);
<S extends T> List<S> save(Iterable<S> entities);
void flush();
<S extends T> S saveAndFlush(S entity);
void deleteInBatch(Iterable<T> entities);
void deleteAllInBatch();
T getOne(ID id);

2、当查询条件比较复杂,上述findby不能实现时,可以适用@Query注释来自定义查询语句,例如

@Query("select max(jobinfo.processes) from Jobinfo jobinfo,Taskinfo taskinfo where taskinfo.jobid=jobinfo.id and (shenweistatus=4 or shenweistatus=5) and queuename=?1")
List findMaxNuclear(String queuename);

可以看到这条自定义的查询语句涉及到两张表,也就是两个实体,通过传递queuename实现了两张表的联合查询

3、JpaSpecificationExecutor<T>接口也是我们会使用到的一个接口,可以支持带查询条件的分页排序功能

T findOne(Specification<T>);
List<T> findAll(Specification<T>);
List<T> findAll(Specification<T>, Sort);
List<T> findAll(Specification<T>, Pageable);
long count(Specification<T>);


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消