相关疑难解决方法(0)

JPA本机查询返回具有多个表的字段的实体

我在JPA NativeSql中有一个查询,在那里我做表和联接的"联合".我创建了一个包含来自多个表的所有查询字段的实体.所以我不能像往常一样用JPA做"@Column""@ table".

如何将查询的给定值设置为我的实体?

java jpa

7
推荐指数
2
解决办法
3万
查看次数

如何使用JPA中的SqlResultSetMapping将本机sql结果映射到oneToMany字段

例如,假设我有以下数据库表

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类?

java sql jpa

7
推荐指数
1
解决办法
1288
查看次数

标签 统计

java ×2

jpa ×2

sql ×1