【问题标题】:How to achieve relationships in spring data couchbase?如何在 Spring Data Couchbase 中实现关系?
【发布时间】:2017-12-27 20:35:25
【问题描述】:

我有两个文档:TableA 和 TableB。 TableA 引用了 TableB,但它们不能合并在一起。因为它们是相当“不相关”的数据。从 TableA 到 TableB 也存在某种“ManyToOne”关系。因此,我不想将 TableB 数据放在 TableA 中(冗余问题)。那就是我的 TableA json 看起来像这样:

{
   "class":"tableA",
   "tableB": [
     "1", "2"
   ]
}

TableB json:

[
   {
      "class": "tableB",
      "id": "1",
      "name": "name1"
   },
   {
      "class": "tableB",
      "id": "2",
      "name": "name2"
   }
]

所以,在 spring data couchbase 中,我创建了两个不同的文档:TableA 和 TableB。我的疑问是,在 TableA 实体(@Document)中,我应该直接引用 TableB,还是只保留一个字符串(ID)数组? 如果我直接引用 TableB,那么我将不会得到上面的 json。 我主要关心的是,我要将所有数据复制到移动设备中。我不希望数据重复并导致内存问题。请帮忙。

【问题讨论】:

    标签: json couchbase spring-data-couchbase


    【解决方案1】:

    spring-data-couchbase 不支持@ManyToOne 等关系注释,而且您已经知道,在 Couchbase 本身中没有任何东西可以强制执行关系。

    我在当前项目中的许多实体之间都有关系,它们都只是将 id/key 称为字符串,我手动管理每个实体的加载。

    所以我会说只是将 TableB 称为字符串数组,然后按原样向移动设备发送数据以及来自 TableB 的所需信息......或者创建一个 DTO 类并手动填充它并将其交给您的客户。

    【讨论】:

    • 对,我就这样往前走。
    猜你喜欢
    • 2015-05-31
    • 2023-03-31
    • 2017-03-06
    • 1970-01-01
    • 2018-05-26
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    相关资源
    最近更新 更多