GORM-Viele-zu-Viele-Mapping und kombinierbar mit einem zusätzlichen Feld

8

Ich arbeite mit der Legacy-Datenbank und verfüge über eine Viele-zu-Viele-Verknüpfung mit einer Join-Tabelle, die ich zu einem großen Teil aufgelöst habe, da die Mappings gut funktionieren. Aber es gibt eine zusätzliche Spalte und im Fall von Book, Author-Modell lässt sich sagen, dass die nm_author_books ein Feld namens "Royalty" enthalten. Frage: Wie kann ich von jeder Richtung auf dieses Feld zugreifen?

%Vor%

Wenn die Tabelle nm_author_book [nm_book_id, nm_author_id, royalty] hat, wie kann man auf die Lizenzgebühr zugreifen?

    
rks 07.11.2012, 01:24
quelle

2 Antworten

7

Sie könnten ein Domänenobjekt erstellen, das diese Join-Tabelle modelliert. Anstatt also die Zuordnung für Buch und Autor zu ändern, müssen Sie auf die AuthorBookRoyalty-Domäne zeigen.

%Vor%

Machen Sie Ähnliches für den Autor und Sie können jetzt mit den Lizenzgebühren umgehen. Möglicherweise müssen Sie das Mapping in der Join-Tabelle anpassen, damit es Ihrer aktuellen Datenbank zugeordnet wird.

    
Jeff Beck 07.11.2012, 14:14
quelle
11

Die Grundidee ist der Wechsel von 1 Many-to-Man auf Many-to-One: Ein Buch hat viele BookAuthorDetail und ein Autor hat viele BookAuthorDetail

%Vor%

Um auf die Lizenzgebühren von BookAuthorDetail zuzugreifen, können Sie Folgendes tun: BookAuthorDetail.findAllByBookAndAuthor(bookInstance, authorInstance)

    
hakuna1811 17.06.2014 14:18
quelle