java如何使用JPA中的SqlResultsMapping将本机sql结果映射到oneToMany字段
例如,假设我有以下数据库表
Building
-----------
id
name
及
Room
-----------
id
roomNo
buildingId
构建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'
请注意,由于一对多关系,存在重复的建筑
我知道我可以通过使用JPQL简单地获得构建实体,但我想用原生SQL实现这一点。那么,我如何使用JPA的@SQLResultsMapping将上面的结果映射回Building类呢
# 1 楼答案
如果要保留Join语句,可以使用以下代码: