Ich habe folgende Struktur meiner Entitäten:
%Vor%Und ich habe folgende Ausnahme:
%Vor%Wenn ich @MappedSuperclass zu @Entity in Intermed Klasse ändere, funktioniert alles OK. Gibt es Probleme bei der Verwendung von @MappedSuperclass und @SequenceGenerator? Oder habe ich etwas verpasst?
Hier ist, was die JPA 1.0 Spezifikation über die SequenceGenerator
Annotation sagt:
9.1.37 Sequenzgenerator Annotation
Die
SequenceGenerator
Annotation Definiert einen Primärschlüsselgenerator, der kann namentlich referenziert werden, wenn a Generatorelement ist für die angegebenGeneratedValue
Annotation. EIN Sequenzgenerator kann angegeben werden für die Entitätsklasse oder für das Primärschlüsselfeld oder die Eigenschaft . Das Der Geltungsbereich des Generators ist global zur Persistenzeinheit (über alle Generatortypen).
Und eine zugeordnete Superklasse ist keine Entität. Entsprechend der Art, wie ich die Spezifikation lese, ist das, was du machen willst, nicht möglich. Machen Sie entweder die Intermed
-Klasse zu einer Entität oder geben Sie die SequenceGenerator
für die Unterklassen an.
Ich stieß auf das gleiche Problem, das in dieser Frage beschrieben wurde, während ich versuche, anwendungsweite ID-Generatoren zu erreichen.
Die Lösung ist eigentlich in der ersten Antwort: Setzen Sie den Sequenzgenerator auf das Primärschlüsselfeld .
Wie so:
%Vor%Während ich Dinge mache, scheint dieser Weg bemerkenswert dumm (zumindest für mich) funktioniert es.
Tags und Links java jpa hibernate orm sequence-generators