【发布时间】:2018-04-11 19:22:29
【问题描述】:
我有以下要求:
- 存储复杂的深度嵌套对象
- 能够跨所有嵌套元素更改 GET 请求中的顺序
技术:
- Java 弹簧
- JPA 休眠
- Postgres
json:
[{
"id": 1,
"text": "test1",
"children": [{
"id": 2,
"text": "test1"
},
{
"id": 3,
"text": "test1",
"children": [{
"id": 4,
"text": "test1"
},
{
"id": 5,
"text": "test1"
}
]
}
]
}]
现在我有两种情况:
a) 这种嵌套状态来自前端,我想再次获得完全相同的顺序(不幸的是,postgres 或 mysql 不一定给出与存储它相同的顺序)
b) 我希望能够通过例如订购处于这种深度嵌套状态的creationDate
由于性能原因,我无法在前端展平状态(例如使用“parentId”) - 展平是递归的并且非常昂贵。
您知道如何解决此任务吗? postgres 是一个不错的选择吗?
【问题讨论】:
-
当您说 postgres 不返回相同的订单时,您是指带有 json (postgresql.org/docs/10/static/datatype-json.html) 的 postgres 还是关系模型?使用关系映射,您可以使用任何顺序,只需添加一个额外的列进行排序(您不会返回到前端)。使用 json 你应该取回你输入的内容吗?至于对 json 进行排序,我会在 Java 中这样做。
标签: java postgresql jpa