Weiß jemand, ob es möglich ist, eine Rückreferenz innerhalb einer JPA @EmbeddedId
zu erstellen.So stellen Sie eine Rückreferenz von einer @EmbeddedId in JPA ein
So gibt es zum Beispiel ein Entity des Formulars
@Entity
public class Entity1 {
@Id
@GeneratedValue
private String identifier;
private Entity1 relationToEntity1;
//Left out the getters and setters for simplicity
}
Und eine zweite Einheit mit einem komplexen eingebetteten Id. Ein Teil dieser zweiten Entität ist eine Referenz auf ihre Muttergesellschaft. Wie so:
@Entity
public class Entity2 {
@EmbeddedId private Entity2Identifier id;
//Left out the getters and setters for simplicity.
}
@Embedabble
public class Entity2Identifier {
private String firstPartOfIdentifier;
private Entity1 parent;
//Left out the getters and setters for simplicity.
}
Wenn ich versuche, ein solches Konstrukt über JPA zu speichern (Implementation ist Eclipse) in einer Datenbank erhalte ich mehrere Ausnahmen von der Form:
Exception [EclipseLink-93] (Eclipse Persistence Services - 1.1.0.r3639-SNAPSHOT):
org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The table [ENTITY1] is not present in this descriptor.
Descriptor: RelationalDescriptor(test.Entity2 --> [DatabaseTable(ENTITY2)])
Hat jemand auf ein solches Problem gestoßen und hat eine Lösung?
OK. Ich denke, mein Beispiel war zu einfach. Der Elternteil hat tatsächlich eine komplexe eingebettete ID, die ebenfalls aus zwei Strings besteht. Deshalb kann ich nicht einfach auf seine ID verweisen. – ali
Das ist auch einfach. Ich habe mein Beispiel aktualisiert, um eine EmbeddedId auf Entität 1 zu verwenden. –
@MapsId ist der Gewinner! So nützlich. –