【发布时间】:2016-09-28 13:15:32
【问题描述】:
我正在尝试找出在 couchbase 文档中获取嵌套对象类型的最佳方法。
我有这份文件:
{
"storeType": {
"name": "Store"
},
"name": "Store",
"_class": "common.domain.Store",
"categories": [
{
"name": "Series",
"displayable": false,
"active": false,
"highlights": [
{
"name": "Spiderman",
"active": true
},
{
"name": "Spiderman2",
"active": true
}
],
"categoryId": "SERIES"
}
],
"storeId": "STORE::10",
"order": 1
}
spring data 使用_class 来找出hole 文档类型。
我的问题是:
如何在类别列表中找到每个对象的准确类型?
非常感谢
【问题讨论】:
-
你的例子中嵌套对象的类型是什么?
-
这里我有一个包含类别列表的商店(这是一个继承的类),每个类别都有一个亮点列表。
-
即使使用 Spring Data,我也总是在我的所有文档中添加一个类型字段。这真的很有帮助。您还想通过 N1QL 或 Spring Data 存储库获取它吗?
-
通过 N1QL。我们所做的通常是将 Spring Data 用于所有简单查询,并使用 java 客户端执行更复杂的查询(明确嵌套对象)。到目前为止,我们有两个问题:通过 N1QL 更新第二级嵌套对象并检索嵌套对象的类型(以避免解析 N1qlQueryResult)
-
找到要进行更新的查询。我们使用了集合运算符 WITHIN : UPDATE bucket b USE KEYS "Store::1" SET h.active = false FOR h WITHIN b.categories when h.cbHighlightId = "Highlight::1" END 。突出显示不是文档。
标签: java json couchbase spring-data-couchbase couchbase-java-api