java - SQL 或 Spring JDBC 返回对象的对象
问题描述
postgres-sql 或 Spring JDBC 是否可以返回具有以下形状的数据:
{
id: 1
profit: 200
sales_rep: {
name: 'bob',
age: 9,
gender: male
}
在到达存储库层之前,名称、年龄和性别在键“sales_rep”中的位置?或者我是否必须检索平面数据,然后使用 java 将其放入存储库层中我想要的形状。
请假设我们使用两个表 'earnings' 和 'sales_rep' 外键为 'sales_rep_id' 以便于论证。
解决方案
在 Postgres SQL 中,您可以使用 json 函数轻松完成此操作:
select jsonb_build_object(
'id', e.id,
'profit', e.profit
'sales_rep', jsonb_build_object(
'name', sr.name,
'age', sr.age,
'gender', sr.gender
)
) js
from earnings e
inner join sales_rep sr on sr.sales_rep_id = e.sales_rep_id
这为您提供了一个每行earning
和一个列的结果集,其中包含具有您要求的结构的 jsonb 有效负载。
推荐阅读
- image - Android Studio - 将位图保存到图库不正确
- r - 如何通过分组合并行并仅在R中保留最高值
- cordova - 从 Cordova android 模拟器打印
- powershell - 需要使用 Powershell 向 Teams 发送 .csv
- ios - Swift 中的递归函数在使用大量输入调用时崩溃
- python - pandas 中的列表列(如果存在于另一个列表中)
- javascript - 谷歌脚本:设置自定义比例,导出为 PDF 时
- automated-tests - 您如何为自定义 bazel 规则编写自动化测试?
- java - Hadoop 配置属性值的长度限制
- codenameone - 代号 每个应用安装一个 uniqueId