现在 mybatis 也好 jpa 也罢这些 orm/mapping 框架都需要手动指定比如 1 对 n 的时候的映射关系来将 sql 返回的矩阵变成结构化的数据
{
"a":[
1,2
]
}
比如这样的结构 sql 查询的结果实际上是 a,1 a,2
有办法通过比如 ast 语法树分析之类的来代替原来手动指定么?
1
a1369521908 2019-09-27 15:27:55 +08:00
|
2
YUyu101 2019-09-27 15:39:08 +08:00
用函数转成 json 或者 array 塞到子查询里吧,不然还会碰到你想查用户的发帖列表和回复列表这种,一对几个多的情况,用表格无法表示结果,只能塞到一个字段里去,而且还不用 orm 映射了。否则就分两次查询。
|
3
YUyu101 2019-09-27 15:43:59 +08:00
select a.*,(select json_agg(b.*) from b where aid=a.id) as b from a
查出来就是 a , b:[b1,b2] |
4
gowk 2019-09-27 15:46:26 +08:00 via Android 1
来了,来了,那个男人就要来了
|
5
reus 2019-09-27 15:47:01 +08:00
PostgreSQL 可以直接写在 sql 里,想要什么结构自己写
jsonb_agg, jsonb_build_object 等等,都可以构造嵌套数据 |