3 Stimmen

Sequenzgenerator in der Basisklasse von JPA-Entitäten definieren?

Ist es möglich, den Sequenzgenerator einer Basisklasse in eine jpa2.0 Entität zu vererben? Das Ziel ist es, die id-Eigenschaft aller Entitäten in einer gemeinsamen Basisklasse zu haben und jede Entität muss nur den Namen ihrer eigenen Sequenz definieren.

Das ist es, was ich will: Basisklasse:

public abstract class BaseClass {

   @Id
   @GeneratedValue( strategy = GenerationType.AUTO, generator = "mySeqGenerator")
   Long id;
}

und eine Implementierung

@Entity
@SequenceGenerator( name = "mySeqGenerator", sequenceName = "the_seq" )
public class MyEntity extends BaseClass {
   [..]
}

Ich verwende Hibernate und ist widerruft dies durch "HHH000138: Mischen von Vererbungsstrategie in einer Entitätshierarchie ist nicht erlaubt, ignorieren Unterstrategie in MyEntity"

0voto

Piotr Nowicki Punkte 17434

Alle Generatoren sind global zum Referat Persistenz unabhängig davon, wie sie definiert wurden (in Anmerkungen auf Klassen- oder Feldebene oder in orm.xml ).

Sie brauchen also nichts zu "erben" oder zu "teilen" - Sie können es einfach nutzen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X