javax.Persistenz-Annotationen und Vererbung

Ich habe 4 persistenten Klassen, die alle die gleichen Felder (genau) die nur 3 Unterschied zwischen Ihnen ist 1) der name der Klasse, 2) der name der Tabelle und 3) die Daten. ich bin mir bewusst, dass dies vielleicht seltsam erscheinen, einige, aber glauben Sie mir, es ist ein guter Grund, die ich nicht eingehen.

nun, ich bin mit hibernate annotations zu konfigurieren ist meine Klasse, die sollte funktionieren, etwa so:

@Entity
@Table(name = "store")
public class Store
{
 @Id
 @Column(name = "unique_id")
 protected String id;
 @Column
 protected String category;
 ...
}

.. und das funktioniert, für eine einzelne stand-alone-Klasse, allerdings gibt es viele Felder auf der Karte und ich würde gerne tun es in einem hit für alle vier ähnliche Klassen, dh:

public class StoreBase
{
 @Id
 @Column(name = "unique_id")
 protected String id;
 @Column
 protected String category;
 ...
}

@Entity
@Table(name = "store1")
public class Store1 extends StoreBase
{}

@Entity
@Table(name = "store2")
public class Store2 extends StoreBase
{}

@Entity
@Table(name = "store3")
public class Store3 extends StoreBase
{}

@Entity
@Table(name = "store4")
public class Store4 extends StoreBase
{}

jedoch beim Versuch bekomme ich die folgende exception:

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: package.entities.Store1
 at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:672)
 at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
 at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
 at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)

ich vermute, das ist, weil die super-Klasse nicht gesucht wird, der für den Bezeichner?

gibt es eine Möglichkeit zu nutzen, die Vererbung in diesem Zusammenhang?

Dank, paul.

  • geändert tags. dies ist nicht über hibernate annotations, es ist über jpa mit hibernate
InformationsquelleAutor pstanton | 2010-08-18
Schreibe einen Kommentar