当前位置: 首页 > 知识库问答 >
问题:

Springboot为多表本机查询提供冗余字段

欧阳成弘
2023-03-14

我在spring boot中有一个本机查询,如下所示:

select
a.x,
a.y,
b.m,
b.n
from 
table1 a,
table2 b
where
a.x = b.x
order by a.x

在这里,对于表1的每个条目,表2中可以有多个匹配的行。即有一个到多个映射。

为此,我创建了一个对象来保存数据

@Entity@Table(name="table1")@秒表(name="table2", pkJoinClons={@PrimaryKeyJoinCol列(name="x",引用的列名称="x")})公共类TableData{

@Id
@Column(name = "x")
public String x;


@Column(name = "y")
public String y;


@Column(name = "m", table = "table2")
public String m;


@Column(name = "n", table = "table2")
public String n;

//getters and setters

当我在db中执行sql时,我看到结果很好。一、 e我看到两行a.x相同,但b.m和b.n不同

但是我的json响应有两行相同的a. x和相同的b. m和b. n

样本数据:

表1:ManagerID|ManagerName|角色'1','John','Manager'

表2:ManagerID|AssociateName|AssociateId
'1','Peter','2'
'1','Jacob','3'

预期输出

'1','约翰','彼得','2'
'1','约翰','雅各布','3'

我现在看到的输出:

“1”、“约翰”、“彼得”、“2”、“1”、“约翰”、“彼得”、“2”

猜猜我哪里做错了??

共有1个答案

楚嘉
2023-03-14

我的问题通过使用@IdClass注释得到了解决,因为查询的结果数据是一个连接,唯一性可以通过字段组合来维护!!

 类似资料: