![](/img/trans.png)
[英]ModelMapper & JPA: How to map DTO with id to Entity with oneToMany field
[英]How to map native sql results to oneToMany field with SqlResultSetMapping in JPA
例如,假设我有以下数据库表
Building
-----------
id
name
和
Room
-----------
id
roomNo
buildingId
Building Java 类看起来像
@Entity
public class Building {
private int id;
@OneToMany private List<Room> rooms;
...
我有以下 SQL 来获取建筑物
SELECT b.id,
b.name,
r.id AS rid,
r.roomNo
FROM Building b
LEFT JOIN Room r ON
b.id = r.buildingId
结果将是
id, name, rid, roomNo
---------------------
1, 'b1', 10, 'r100'
1, 'b1', 11, 'r101'
2, 'b2', 12, 'r10'
请注意,由于一对多关系,存在重复的 Building。
我知道我可以通过使用 JPQL 来获取 Building 实体,但我想使用本机 SQL 来做到这一点。 那么如何使用 JPA 的 @SqlResultSetMapping 将上面的结果映射回 Building 类?
如果要保留 Join 语句,可以使用此代码:
SELECT DISTINCT
b.id,
b.name,
0 AS rid,
'' AS roomNo
FROM Building b
LEFT JOIN Room r ON
b.id = r.buildingId
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.