例如,假设我有以下数据库表
Building
-----------
id
name
Run Code Online (Sandbox Code Playgroud)
和
Room
-----------
id
roomNo
buildingId
Run Code Online (Sandbox Code Playgroud)
构建Java类看起来像
@Entity
public class Building {
private int id;
@OneToMany private List<Room> rooms;
...
Run Code Online (Sandbox Code Playgroud)
我有以下SQL来获取Building
SELECT b.id,
b.name,
r.id AS rid,
r.roomNo
FROM Building b
LEFT JOIN Room r ON
b.id = r.buildingId
Run Code Online (Sandbox Code Playgroud)
结果将是
id, name, rid, roomNo
---------------------
1, 'b1', 10, 'r100'
1, 'b1', 11, 'r101'
2, 'b2', 12, 'r10'
Run Code Online (Sandbox Code Playgroud)
请注意,由于一对多关系,存在重复的建筑物.
我知道我只需使用JPQL即可获得Building实体,但我希望使用本机SQL执行此操作.那么我如何使用JPA的@SqlResultSetMapping将上面的结果映射回到Building类?
小智 0
如果您想保留 Join 语句,可以使用以下代码:
SELECT DISTINCT
b.id,
b.name,
0 AS rid,
'' AS roomNo
FROM Building b
LEFT JOIN Room r ON
b.id = r.buildingId
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1288 次 |
最近记录: |