java - JPA 多连接命名查询结果到 POJO
问题描述
我有一个如下所示的 JPA 命名查询,而不是原生查询。
@NamedQuery(name = "SummaryQuery", query="SELECT p.dId , p.hashedId ,p.lanCode , p.markCode, Address "
+ "FROM ProfileSummary p "
+ "LEFT JOIN FETCH Address Address ON Address.id.dId = p.dId "
+ "WHERE p.dId = :dId ")
此查询使用左连接从两个表中获取数据。因为它是一个自定义查询,所以 JPA 在 Object 数组中返回输出,而不是我期望的 POJO。下面是 SQL 结果集的映射。我不确定是否正在使用以下映射。
@SqlResultSetMapping(
name = "SummaryQuery",
classes = @ConstructorResult(
targetClass = ProfileSummaryPojo.class,
columns = {
@ColumnResult(name = "dId"),
@ColumnResult(name = "hashedId"),
@ColumnResult(name = "lanCode"),
@ColumnResult(name = "markCode")
}
)
)
由于这是自定义查询和 oneToMany 映射,我只需要一个 DB HIT 而不是两个单独的查询。这就是我编写自定义查询的原因。现在的问题是它将结果集作为对象列表返回。如何在 POJO 中获取它。
提前致谢。
解决方案
推荐阅读
- javascript - 如何使标题仅在大屏幕上保持粘性,但在用户向下滚动时在移动设备上消失?
- flutter - 为什么iOS模拟器打不开?
- debugging - CDB 在启动和退出时吐出“加载和卸载 NatVis 脚本”消息
- api - 如何使用 Yii2 micro 更改 xml 或 json 中的响应
- java - CSRF 令牌已与此客户端关联
- python - 回滚日期偏移量
- flutter - Flutter 如何使用 for 循环来获得超过 15 个日期?
- r - 在列表中堆叠数据框的列
- spring-boot - 使用 JWT 令牌技巧和最佳实践的 Spring Boot 安全性
- python - 更新 Tkinter 标签后如何删除故障文本?