Kann eine JPA-Entitätsklasse zwei embedded ( @Embedded
) -Felder enthalten? Ein Beispiel wäre:
@Entity
public class Person {
@Embedded
public Address home;
@Embedded
public Address work;
}
public class Address {
public String street;
...
}
In diesem Fall Person
kann a zwei Address
Instanzen enthalten - Heim und Arbeit. Ich verwende JPA mit der Implementierung von Hibernate. Wenn ich das Schema mit den Tools für den Ruhezustand generiere, wird nur eines eingebettet Address
. Was ich möchte, sind zwei eingebettete Address
Instanzen, deren Spaltennamen unterschieden oder mit einem Präfix versehen sind (z. B. zu Hause und bei der Arbeit). Ich weiß @AttributeOverrides
, aber dies erfordert, dass jedes Attribut einzeln überschrieben wird. Dies kann umständlich werden, wenn das eingebettete Objekt ( Address
) groß wird, da jede Spalte einzeln überschrieben werden muss.
name="street"
sich dies auf den Namen der Eigenschaft bezieht, nicht auf den Spaltennamen.