¿Cómo configuraría las anotaciones en el siguiente código de ejemplo? Me gustaría seguir con las anotaciones de JPA y evitar las dependencias específicas de Hibernate. ¿El código de abajo es correcto?Clase abstracta heredada con JPA (+ Hibernate)
@Entity
public class RefExample extends RefData {
}
(Habrá varias versiones de estas clases, RefSomeOtherExample, etc, y una mesa de un dB por clase. Algunos pueden añadir campos adicionales (columnas), pero la mayoría de ellos simplemente hacer uso de los campos básicos heredado de la "rEFDATA" clase base)
clase base:.
@Entity
public abstract class RefData {
private long id;
private String code;
private String desc;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(unique = true, nullable = false)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Column(unique = true, nullable = false, length=8)
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Column(unique = true, nullable = false, length=80)
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
en última instancia me gustaría generar secuencias de comandos de creación del esquema de esta clase usando SchemaExport de Hibernate. En el caso anterior, estas dos clases solo deberían dar como resultado la creación de una única tabla llamada "RefExample" con las tres columnas de "RefData". esto funcionara?
@Crusader Vea aquí: http://stackoverflow.com/questions/2700680/table-per-subclass-inheritance-relationship-how-to-query-against-the-parent-clas/3017146#3017146 cómo soluciono los problemas de rendimiento cuando se trata de herencia. ** Si desea utilizar la estrategia TABLE PER CLASS, la base de datos de destino debe admitir la estrategia de generación de identidad **. –
Todavía no estoy 100% seguro, pero creo que MappedSuperclass puede ser mi mejor opción. Todas estas tablas son realmente para almacenar los valores presentados en los campos desplegables que se asignan (uno a muchos) a los registros de datos reales. – Manius
Es posible consultar (HQL o JPQL) en las propiedades presentes en la superclase anotada con @MappedSuperclass – Sunil