Spring Data Jpa多表联合分页查询
参考:https://blog.csdn.net/qq_36144258/article/details/80298354
近期一个项目用到Spring Data Jpa,Jpa用来做单表查询非常的简单粗暴,可以说不用写sql,但是涉及到复杂的多表操作,还是要写sql,这个时候需要用到@Query注解。@Query用法可见https://mp.csdn.net/postedit/82797015
@Query(value = "select new com.squid.service.dto.MyFriendDTO(uil.createdTime as inviteTime,ui.nickname as name,ui.grade as grade) from UserInviteLog as uil left join UserInfo as ui on uil.userId = ui.id where uil.inviteUserId = :userId and ui.grade > :grade",countQuery = "select count(uil.id) from UserInviteLog as uil left join UserInfo as ui on uil.userId = ui.id where uil.inviteUserId = :userId and ui.grade > :grade")Page<MyFriendDTO> findElitedByInviteUserId(@Param("userId")Long userId, @Param("grade")Integer grade, Pageable pageable);
com.squid.service.dto.MyFriendDTO是需要返回的实体类相当于我们XML中的resultMap,这个地方需要注意的是,一定要重写返回的实体类的构造方法(具体参数根据new创建的参数设置,这里是三参inviteTime、name、grade),否则将new失败。
public MyFriendDTO(Long inviteTime, String name, Integer grade) {this.inviteTime = inviteTime;this.name = name;this.grade = grade;}
也可以不返回具体实体类直接返回List<Map<String, Object>>不过分页就不好处理了。
countQuery就是为了配合Page计算总条数的。
分页入参Pageable,我们和单表分页一样直接丢进去,springdata会帮我们处理好。
Spring Data Jpa多表联合分页查询相关推荐
- Spring Data JPA 多表关联查询的实现
Spring Data JPA 多表关联查询的实现 多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现,第二种是创建一个结果集的接口来接收连表查询 ...
- Spring Data JPA多表操作(5)
Spring Data JPA多表操作(5) 数据库中多表之间的关系 多对多 一对多 一对一 一对多示例 数据库设计示例 实体示例 客户:指的是一家公司,我们记为A. 联系人:指的是A公司中的员工. ...
- 【Spring Data JPA自学笔记三】Spring Data JPA的基础和高级查询方法
文章目录 调用接口的基础方法查询 Repository CrudRepository PagingAndSortingRepository JPARepository JpaSpecification ...
- Spring Data JPA多表查询
多表查询在Spring Data JPA中有两种实现方式 第一种创建一个结果集接口来接收多表连查的结果 第二种利用JPA的关联映射来实现 先来熟悉一下几个注解 注解 意思 属性 @ManyToOne ...
- Spring Data JPA 从入门到精通~查询结果的处理
参数选择(Sort/Pageable)分页和排序 特定类型的参数,Pageable 并动态 Sort 地将分页和排序应用于查询 案例:在查询方法中使用 Pageable.Slice 和 Sort. P ...
- jpa多表联查动态_Spring Data JPA 连表动态条件查询
多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现(使用较为复杂,查询不够灵活),第二种是使用原生sql查询. JPA原生SQL连表查询 @Rep ...
- Spring Data JPA 多条件判空查询
Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询. 使用@Query注解,这种方式可以直接在Repository里面写sql,但是这种方式的问题 ...
- MySQL查询多表定义实体类_SpringBoot中JPA多表联合自定义查询@Query
版权声明:本文为博主原创文章,转载请注明出处,谢谢. 其他相关文章见:个人博客站点:www.val1ant.xin 1. 实体类 本篇示例中,大致关系是一张博客文章表,一张标签表,一张博客与标签相关联 ...
- java 索取了多表联合查询分页,mybatis-plus多表联合分页查询
1.entity层要写个Vo实体类 2.controller @AutoLog(value = "员工CURD-分页列表查询") @ApiOperation(value=" ...
最新文章
- Excel如何设置单元格行高,办公入门
- 服务器时间修改日志怎么查,查看云服务器的操作日志
- 使用NPOI和委托做EXCEL导出
- poj3461kmp
- gzp解压命令 linux_Linux-压缩解压命令(gzip,zip,tar,bzip)
- VMware Fusion中使用迅雷的问题
- tn文本分析语言(三):高级语法
- SO_LINGER选项
- 场景,生态之面!——保险科技生态建设
- 【编译打包】nginx-1.4.7-1.el6.lite.src.rpm
- 麟龙指标通达信指标公式源码_通达信仿麟龙决策曲线指标公式(选股公式/源码)...
- flutter微信登录集成
- NYOJ-47 过河问题
- Python学习手册之数据类型
- 站内文案编辑seo关键词优化技巧
- Matebook xpro2019指纹驱动不可用
- Android翻转动画(卡片翻转效果)
- RabbitMQ详解以及spring对RabbitMQ的集成(附带部分源码解读)
- css3 3d旋转图片立方体特效代码
- spark-shuffle