Tengo 4 clases persistentes que tienen todos los mismos campos (exactamente) las únicas 3 diferencias entre ellas son 1) el nombre de la clase, 2) el nombre de la tabla y 3) los datos. Soy consciente de que esto puede parecer extraño para algunos, pero créanme que hay una buena razón por la que no entraré aquí.anotaciones y herencia de javax.persistence
ahora, estoy usando Hibernate anotaciones para configurar mi clase que deben trabajar de esta manera:
@Entity
@Table(name = "store")
public class Store
{
@Id
@Column(name = "unique_id")
protected String id;
@Column
protected String category;
...
}
.. y esto funciona, por una sola clase independiente, sin embargo hay muchos campos a el mapa y me gustaría hacerlo todo de un solo golpe para las cuatro clases similares, es decir:
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
{}
embargo
al intentar este me da la siguiente excepción:
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)
Supongo que esto se debe a que no se está buscando el identificador en la superclase.
¿Existe alguna forma de utilizar la herencia en este contexto?
gracias, paul.
cambiaron las etiquetas. esto no se trata de anotaciones de hibernación, se trata de jpa usando hibernación –