2017-12-27 62 views
0

私は2つのドキュメントを持っています:TableAとTableB。表AはTableBを参照していますが、一緒にクラブに参加することはできません。彼らはかなり "無関係な"データなので。また、TableAからTableBには、何らかの「ManyToOne」関係があります。したがって、私はTableAの中にTableBデータを置くことはしません(冗長性の問題)。それは私のTableAのが、JSONは次のようになります:どのように春のデータcouchbaseで関係を達成するには?

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

テーブルBのJSON:

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

ので、春データCouchbaseの中で、私が作成した二つの異なる文書:テーブルAとテーブルB。私の疑念は、ここでTableAエンティティ(@Document)で直接TableBを参照するか、文字列(ID)の配列を保持するだけですか? TableBを直接参照すると、上記のjsonが得られません。 私の主な関心事は、すべてのデータをモバイルデバイスに複製することです。私はデータが繰り返され、メモリの問題を引き起こすことは望んでいません。助けてください。

答えて

0

@ManyToOneなどのリレーションシップアノテーションはspring-data-couchbaseでサポートされていません。すでに知っているように、Couchbase自体にリレーションシップを適用するものはありません。

私の現在のプロジェクトでは多くのエンティティ間に関係があり、それらはすべてid/keyを文字列として参照し、各エンティティの読み込みを手作業で管理します。

だから私はTableBを文字列配列として参照し、TableBの必要な情報と一緒にモバイルにデータを送信するか、DTOクラスを作成して手作業で入力してあなたのクライアント。

+0

そうですね、私はこのように進んでいました。 – User1230321

関連する問題