Ich habe eine Entität wie folgt aussehen.Wie kann ich eine Entität für OneToMany anderer Entitäten teilen
@Entity
class Property extends BaseEntity {
@Basic
private String name;
@Basic
private String value;
}
Die grundlegende Absicht ist die Verwendung dieser Entität als andere Entitäten Eigenschaften.
@Entity
class MyEntity extends BaseEntity {
@OneToMany
private List<Property> properties;
}
@Entity
class YourEntity extends BaseEntity {
@OneToMany
private List<Property> properties;
}
Wie kann ich das tun? Muss ich das Feld jedes Besitzers in Property
definieren?
@Entity
class Property extends BaseEntity {
@Basic
private String name;
@Basic
private String value;
@ManyToOne(optional = true)
private MyEntity myEntity;
@ManyToOne(optional = true)
private YourEntity yourEntity;
@ManyToOne(optional = true)
private OtherEntity otherEntity;
}
Es gibt viele Möglichkeiten, es zu tun, es hängt alles von Ihrer "Eigenschaft" ab und welche Ebene der Freigabe Sie zwischen anderen Entitäten haben möchten. Können zum Beispiel YourEntity, MyEntity und andere alle dieselbe Eigenschaft referenzieren? Oder wird eine Eigenschaft pro referenzierende Entität eindeutig sein. Wenn dies der spätere Fall ist, möchten Sie möglicherweise Aggregatsammlungen untersuchen, sodass jede besitzende Entität eine eigene Eigenschaftentabelle für ihre Referenzen erhält und die Eigenschaft keine eindeutige ID benötigt. Wenn es geteilt werden soll, benötigt es eine eigene ID, die es identifiziert, oder Sie können das Name/Wert-Paar zur zusammengesetzten ID machen – Chris