Tengo dos clases de hibernación: una clase base y una clase extendida que tiene campos adicionales. (. Estos campos se asignan por otras tablas)Asignación de varias clases a una tabla en hibernación, sin una columna DTYPE
Por ejemplo, tengo:
@Entity
@Table(name="Book")
public class A {
private String ID;
private String Name;
// ...
}
@Entity
@Table(name="Book")
public class B extends A {
public String node_ID;
// ...
}
public class Node {
public String ID; // maps to B.node_ID
// ...
}
¿Cómo puedo asignar esta en Hibernate? The hibernate documentation indica tres tipos de configuraciones de herencia: una tabla por clase, una tabla con una columna de tipo y una tabla de unión, ninguna de las cuales se aplica aquí.
La razón por la que necesito hacer esto es porque la clase A proviene del marco genérico que se reutiliza en múltiples proyectos, y la clase B (y el Nodo) son extensiones específicas de un proyecto; no se usarán nuevamente. En el futuro, tal vez tenga una clase C con un house_ID o algún otro campo.
Edit: Si pruebo la configuración de pseudocódigo anterior (dos entidades asignadas a la misma tabla) me sale un error que dice que la columna DTYPE no existe. El HQL tiene un "donde DTYPE =" A" adjunta
Si estas clases se asignan a la misma tabla sin columna discriminadora, ¿cómo Hibernate distinguir cuál es cuál? – axtavt
@axtavt ese es el punto, cada instancia de B también es un A. – ashes999