Ich habe eine Entität Order
, die eine billingAddress
und eine shippingAddress
hat. Ich habe auch eine Address
Einheit. Ich versuche, eine einzige Adresstabelle zu erstellen, die sowohl die Versand- als auch die Rechnungsadresse enthält, da es keine Unterscheidung gibt und die Rechnungs- und Lieferadresse in einer oder mehreren Bestellungen identisch sein kann. Ich habe @ManyToOne
für die Adressfelder in Order
verwendet, aber ich bin mir nicht sicher, wie man das bidirektional macht.
Ich habe zwei Fragen:
@ManyToOne
für die Adressfelder geeignet, da es sich wirklich um eine n: 2-Beziehung handelt, die ich einfach mit zwei separaten Feldern repräsentiere? Wenn nicht, was sollte ich stattdessen tun? Address
verwenden?)? Kann dies geschehen, indem mehrere Spalten in einer Annotation in Address
? Code:
%Vor%In Bezug auf Ihre erste Frage: Ist es ein ManyToOne?
Es kommt darauf an. Wenn mehrere Bestellungen dieselbe Lieferadresse haben können, handelt es sich um ein ManyToOne. Wenn nur eine Bestellung eine Lieferadresse haben kann, handelt es sich um eine OneToOne. Gleich für die Rechnungsadresse.
Ich bin mir nicht sicher, ob die bidirektionale Assoziation eine gute Idee ist. Ich würde es wahrscheinlich in diesem Fall nicht tun. Aber wenn Sie es bidirektional machen wollen, müssen Sie sie bidirektional machen. Sie haben tatsächlich zwei verschiedene Assoziationen hier. Das Mapping würde daher wie folgt aussehen:
%Vor%oder, wenn die Assoziation tatsächlich eine OneToOne ist (siehe Antwort auf die erste Frage):
%Vor%