参考: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多表联合分页查询相关推荐

  1. Spring Data JPA 多表关联查询的实现

    Spring Data JPA 多表关联查询的实现 多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现,第二种是创建一个结果集的接口来接收连表查询 ...

  2. Spring Data JPA多表操作(5)

    Spring Data JPA多表操作(5) 数据库中多表之间的关系 多对多 一对多 一对一 一对多示例 数据库设计示例 实体示例 客户:指的是一家公司,我们记为A. 联系人:指的是A公司中的员工. ...

  3. 【Spring Data JPA自学笔记三】Spring Data JPA的基础和高级查询方法

    文章目录 调用接口的基础方法查询 Repository CrudRepository PagingAndSortingRepository JPARepository JpaSpecification ...

  4. Spring Data JPA多表查询

    多表查询在Spring Data JPA中有两种实现方式 第一种创建一个结果集接口来接收多表连查的结果 第二种利用JPA的关联映射来实现 先来熟悉一下几个注解 注解 意思 属性 @ManyToOne ...

  5. Spring Data JPA 从入门到精通~查询结果的处理

    参数选择(Sort/Pageable)分页和排序 特定类型的参数,Pageable 并动态 Sort 地将分页和排序应用于查询 案例:在查询方法中使用 Pageable.Slice 和 Sort. P ...

  6. jpa多表联查动态_Spring Data JPA 连表动态条件查询

    多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现(使用较为复杂,查询不够灵活),第二种是使用原生sql查询. JPA原生SQL连表查询 @Rep ...

  7. Spring Data JPA 多条件判空查询

    Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询. 使用@Query注解,这种方式可以直接在Repository里面写sql,但是这种方式的问题 ...

  8. MySQL查询多表定义实体类_SpringBoot中JPA多表联合自定义查询@Query

    版权声明:本文为博主原创文章,转载请注明出处,谢谢. 其他相关文章见:个人博客站点:www.val1ant.xin 1. 实体类 本篇示例中,大致关系是一张博客文章表,一张标签表,一张博客与标签相关联 ...

  9. java 索取了多表联合查询分页,mybatis-plus多表联合分页查询

    1.entity层要写个Vo实体类 2.controller @AutoLog(value = "员工CURD-分页列表查询") @ApiOperation(value=" ...

最新文章

  1. Excel如何设置单元格行高,办公入门
  2. 服务器时间修改日志怎么查,查看云服务器的操作日志
  3. 使用NPOI和委托做EXCEL导出
  4. poj3461kmp
  5. gzp解压命令 linux_Linux-压缩解压命令(gzip,zip,tar,bzip)
  6. VMware Fusion中使用迅雷的问题
  7. tn文本分析语言(三):高级语法
  8. SO_LINGER选项
  9. 场景,生态之面!——保险科技生态建设
  10. 【编译打包】nginx-1.4.7-1.el6.lite.src.rpm
  11. 麟龙指标通达信指标公式源码_通达信仿麟龙决策曲线指标公式(选股公式/源码)...
  12. flutter微信登录集成
  13. NYOJ-47 过河问题
  14. Python学习手册之数据类型
  15. 站内文案编辑seo关键词优化技巧
  16. Matebook xpro2019指纹驱动不可用
  17. Android翻转动画(卡片翻转效果)
  18. RabbitMQ详解以及spring对RabbitMQ的集成(附带部分源码解读)
  19. css3 3d旋转图片立方体特效代码
  20. spark-shuffle

热门文章

  1. 测试用例方法--边界值分析法
  2. PerformanceCounter 详解,使用方法
  3. 茫茫人海中,一眼选中你!
  4. 2021/8/4- eclipse的优化等级
  5. 桌面计算机盖帘,一种多功能计算机显示器底座制造技术
  6. STM32——两个模块代码的合并
  7. 支付宝支付--新手快速入手(十分钟上手)
  8. Problem complexity and method efficiency in optimization
  9. vim查找或替换字符串后,取消高亮
  10. MySQL中district_MySQL中distinct语句的基本原理及其与group by的比较