/*** 多表联合查询**/@RequestMapping("/q2")public void specQ2(){Specification<LinkMan> specification = new Specification<LinkMan>() {@Overridepublic Predicate toPredicate(Root<LinkMan> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {List<Predicate> predicates = new ArrayList<Predicate>();// 多表连接获取查询参数Join<LinkMan, Customer> join = root.join("customer", JoinType.LEFT);predicates.add(criteriaBuilder.equal(join.get("custName"), "Google"));Predicate[] p = new Predicate[predicates.size()];return criteriaBuilder.and(predicates.toArray(p));}};System.out.println("----###----###--");List<LinkMan> results = linkManDao.findAll(specification);System.out.println(results);}/*** 多表联合查询* @param linkMan* @param role*/@RequestMapping("/q3")
//    public  void listUser(LinkMan linkMan, Role role){public  void listUser(){Specification<LinkMan> specification = new Specification<LinkMan>() {@Overridepublic Predicate toPredicate(Root<LinkMan> root, CriteriaQuery<?> query, CriteriaBuilder cb) {List<Predicate> predicates = new ArrayList<>();Join<LinkMan, Role> roleJoin = root.join("roles", JoinType.LEFT);
//                predicates.add(cb.equal(roleJoin.get("roleId"), role.getRoleId()));predicates.add(cb.equal(roleJoin.get("roleId"), "108"));//                if (linkMan.getLkName() != null){if (root.get("lkName") != null){
//                    predicates.add(cb.like(root.get("lkName"), "%" + linkMan.getLkName() +"%"));predicates.add(cb.like(root.get("lkName"), "%" + "C" + "%"));}Predicate[] predicatesArr = new Predicate[predicates.size()];predicates.toArray(predicatesArr);return cb.and(predicatesArr);}};System.out.println("+++++(Q 3)##########");System.out.println(linkManDao.findAll(specification));}

jpa 利用JpaSpecificationExecutor做复杂多表联合查询相关推荐

  1. MySQL通过两表避免回表_mysql利用覆盖索引避免回表优化查询

    前言 说到覆盖索引之前,先要了解它的数据结构:B+树. 先建个表演示(为了简单,id按顺序建): id name 1 aa 3 kl 5 op 8 aa 10 kk 11 kl 14 jk 16 ml ...

  2. mysql+索引优化+查询优化+存储优化_mysql利用覆盖索引避免回表优化查询

    前言 说到覆盖索引之前,先要了解它的数据结构:B+树. 先建个表演示(为了简单,id按顺序建): id name 1 aa 3 kl 5 op 8 aa 10 kk 11 kl 14 jk 16 ml ...

  3. MySQL 子查询,多表联合查询,视图,存储过程详解

    -----------MySQL数据库中多表联合查询---------- 多表联合查询的理论依据:笛卡尔积 通过笛卡尔乘积,把两个或者多个表变为一个大表,里面包含了有效的,无效的记录(需要加条件进行过 ...

  4. oracle多表联合查询更新,ORACLE 两表关联更新三种方式

    不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...

  5. MySQL 多表联合查询有何讲究?

    今天我们来聊聊微信中的多表联合查询,应该是小表驱动大表还是大表驱动小表? 1. in VS exists 在正式分析之前,我们先来看两个关键字 in 和 exists. 假设我现在有两张表:员工表和部 ...

  6. mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解

    sqlserver多表联合查询和多表分页查询的代码讲解 发布时间:2020-05-14 14:42:07 来源:亿速云 阅读:700 作者:Leah 这篇文章主要为大家详细介绍了sqlserver多表 ...

  7. mysql多表查询分页面_mysql多表联合查询分点经验给大家

    你的位置: 问答吧 -> MySQL -> 问题详情 mysql多表联合查询分点经验给大家 我在工作中天天研究zen cart的程序,那个叫人痛苦,最近比较痛苦的是经常碰见mysql多表联 ...

  8. mysql同张表关联多次查询_MySQL多次单表查询和多表联合查询

    Tip:不建议执行三张表以上的多表联合查询 对数据量不大的应用来说,多表联合查询开发高效,但是多表联合查询在表数据量大,并且没有索引的时候,如果进行笛卡儿积,那数据量会非常大,sql执行效率会非常低 ...

  9. 多表联合查询、嵌套查询

    多表联合查询: 条件:连接到一起的两张表,必须存在公共字段(主外键关系的字段就是公共字段).名字可以不同,但是数据的含义.字段的类型.长度必须一致.(学生表和商品表就没有公共字段,两张表不适合做连接查 ...

最新文章

  1. Windows:安装Chrome OS/Chromium OS/CloudReady 到虚拟机VMware/VirtualBox
  2. SparkSQL(Spark-1.4.0)实战系列(一)——DataFrames基础
  3. SQL注入_1-6_user-agent注入
  4. Editability on SAP Text
  5. python做什么模型_主题模型初学者指南[Python]
  6. java 从excel中读取数据_java如何从excel中读出数据
  7. 同一解决方案内的多个项目之间如何引用?
  8. meta你到底了解多少
  9. oracle向右削减和补全,b操纵序列削减Oracle数据库开辟工作量-开辟技术/b[Oracle防范]...
  10. 生产者消费者模型(自己上锁与阻塞队列两版本)
  11. 数字图像处理第三次试验:图像复原、图像分割
  12. 摩托罗拉E2卸载MPKG程序的简单方法
  13. 【网络与系统安全实验】网络与系统安全概述
  14. html 文字竖着排引号,竖排文字 引号如何使用?
  15. 网络共享计算机网络无法访问,局域网电脑无法访问共享文件网络共享失败怎么解决...
  16. IP-guard功能模块简介
  17. c中字符串分割函数strtok
  18. 社交软件红包技术解密(十):手Q客户端针对2020年春节红包的技术实践
  19. 在控制面板找不到程序的情况下,卸载流氓软件
  20. Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp

热门文章

  1. 集五福瓜分5亿现金,你知道里面暗藏猫腻吗?
  2. 请用python帮写我写个抢票软件
  3. mysql 索引 unique_MySQL UNIQUE索引
  4. 读书笔记---晚熟的人(莫言)
  5. 超凡三国志 一款超好玩的放置类挂机RPG游戏
  6. w3m 设置用户名密码自动登录
  7. 弹性盒子文字省略号(ellipsis)设置
  8. Linux下文件夹的自动同步
  9. 科普:跨链桥是如何被黑的?
  10. 【宇麦科技】单向同步+在线编辑 ,群晖Drive APP迎来了更新