JPA利用specification机制进行表连接查询的问题记录

简介: 采用root.join连接表过程中注意点

利用root.join()实现表关联

  • 利用join方法实现表关联查询的是时候是依赖于主表对应的实体中存在需要关联的表的实体。
  • 这两者的关系可以是1:1 1:n n:1 n:m
  • 相应的实体中需要使用到@OneToMany\@ManyToMany\@ManyToOne\@OneToOne 注释相应的字段。该注解可单独出现在一个实体中,互相关联的实体没有该注解的约束(例如:一个中用例1:n 的注解另一个并不一定需要增加对应的对象同时也就没有n:1注解的事情了)
  • 通过join可以设置左相联还是右相联还是内相联。
  • 后面就可直接通过root.get(attributeName).get(property)来进行条件的拼接了

直接通过criteriaQuery 来获取其他实体的root

  • 通过这种做法默认是进行cross join 交叉连接,同时无法设置目标表的属性条件,因为源表中没有相应的字段映射。

相关注解理解

@JoinColumn中的name和referencedColumnName 属性不同的关系下所指的哪个实体中的属性也不同,需要分却源表和目标表。原表即是主表,目标表也就是嵌入式的连接表。

相关文章
|
2月前
|
SQL
SQL开发问题之当从数据源读取多个字段时优化 COUNT(DISTINCT ...) 的查询的问题如何解决
SQL开发问题之当从数据源读取多个字段时优化 COUNT(DISTINCT ...) 的查询的问题如何解决
|
4月前
|
SQL
SQL语句两个字段或多个字段同时order by 排序
SQL语句两个字段或多个字段同时order by 排序
802 0
|
4月前
|
SQL 关系型数据库 MySQL
SQL INSERT INTO order_record SELECT * FROM 从一张表查出数据插入到另一张表
SQL INSERT INTO order_record SELECT * FROM 从一张表查出数据插入到另一张表
35 0
|
4月前
|
SQL 数据库
SQL标识列实现自动编号的步骤和技巧以及优势
SQL标识列实现自动编号的步骤和技巧以及优势
118 0
|
12月前
|
SQL
SQL两张表中有关联id,但是字段名不同查询
SQL两张表中有关联id,但是字段名不同查询
68 0
|
SQL 数据挖掘 测试技术
软件测试|SQL分类大概有几种?SQL中什么是主键和外键,它们之间的区别是什么?
软件测试|SQL分类大概有几种?SQL中什么是主键和外键,它们之间的区别是什么?
236 0
|
SQL
**SQL某一表中重复某一字段重复记录查询与处理
sql某一表中重复某一字段重复记录查询与处理   1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)>1 2.
944 0
【TP5】根据主键ID进行多条数据查询
【TP5】根据主键ID进行多条数据查询
346 0
【TP5】根据主键ID进行多条数据查询
|
弹性计算 关系型数据库 测试技术
PostgreSQL 分区表如何支持多列唯一约束 - 枚举、hash哈希 分区, 多列唯一, insert into on conflict, update, upsert, merge insert
标签 PostgreSQL , 分区表 , native partition , 唯一 , 非分区键唯一 , 组合唯一 , insert into on conflict , upsert , merge insert 背景 PG 11开始支持HASH分区,10的分区如果要支持hash分区,可以通过枚举绕道实现。 《PostgreSQL 9.x, 10, 11 hash分区表 用法举例
3056 0