我有两个文件: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数据沙发库中,我创建了两个不同的文档:TableA和TableB。我的疑问是,在TableA实体(@Document)中我应该直接引用TableB,还是只保留一个字符串数组(ID)?如果我直接引用TableB,那么我就不会得到上面的json。我主要担心的是,我将把所有数据复制到移动设备中。我不希望重复数据并导致内存问题。请帮忙。
@ManyToOne
不支持像spring-data-couchbase
等关系注释。正如你已经知道的那样,在Couchbase本身没有任何强制关系的东西。
我在当前项目中有许多实体的关系,它们都只是将id / key称为字符串,我手动管理每个实体的加载。
所以我要说只是将TableB称为字符串数组,并将移动数据与TableB中的所需信息一起发送给移动设备......或者创建一个DTO类并手工填充它并将其交给您的客户端。