2017-12-27 9 views
0

Ich habe zwei Dokumente: TableA und TableB. Tabelle A verweist auf Tabelle B, sie können jedoch nicht zusammengelegt werden. Da sie ziemlich "nicht verwandte" Daten sind. Auch von TableA zu TableB gibt es eine Art "ManyToOne" -Beziehung. Daher möchte ich die TableB-Daten nicht in TableA einfügen (Redundanzprobleme). Das ist mein TableA json würde wie folgt aussehen:Wie erreicht man Beziehungen im Frühjahr Daten couchbase?

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

TableB json:

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

also im Frühjahr Daten Couchbase Ich habe erstellt zwei verschiedene Dokumente: TableA und TableB. Mein Zweifel hier ist, in TableA-Entity (@Document) sollte ich direkt auf TableB verweisen, oder einfach nur ein Array von String (IDs)? Wenn ich direkt auf TableB referenziere, dann werde ich das obige json nicht bekommen. Mein Hauptanliegen hier ist, ich werde alle Daten in ein mobiles Gerät replizieren. Ich möchte nicht, dass Daten wiederholt werden und Speicherprobleme verursachen. Bitte helfen Sie.

Antwort

0

Beziehungsanmerkungen wie @ManyToOne usw. werden von spring-data-couchbase nicht unterstützt und wie Sie bereits wissen, gibt es nichts, das Beziehungen in Couchbase selbst erzwingt.

Ich habe Beziehungen über viele Entitäten in meinem aktuellen Projekt und sie alle beziehen sich nur auf die ID/Schlüssel als Zeichenfolge und ich verwalte das Laden jeder Entität von Hand.

Also ich würde sagen, beziehen Sie sich einfach auf TableB als Strings-Array, und entweder senden Sie das Handy die Daten wie benötigt mit Informationen aus TableB ... oder erstellen Sie eine DTO-Klasse und füllen Sie es mit der Hand und übergeben Sie es Ihre Kunden.

+0

Richtig, ich war diesen Weg gegangen. – User1230321

Verwandte Themen