Estoy usando la anotación Hibernate para persistir en mis clases. Actualmente estoy usando la siguiente estrategia para mapear las clasesHibernate Polimórfico HQL instrucción SELECT
Tengo una clase abstracta que es la clase Parent, y tengo dos subclases que heredan de ella Mother, Father.
Me asignan de esa manera:
@MappedSuperclass
public abstract class Parent {
private int age;
private String name;
...
}
Y las otras dos clases se declaran así:
@Entity
public Class Father extends Parent {
private boolean haveMustash;
...
}
Así que, básicamente, el escenario es "tabla por clase".
Ahora quiero crear una declaración HQLnate HQL que actualice la edad de un padre, independientemente de su tipo (madre, padre). el padre se buscará usando la columna de nombre, que es única en ambas tablas. pero no sé si solo miro el nombre si es Madre o Padre. ¿Cómo puedo crear una declaración HQL que se verá en ambas tablas y devolver la entidad correcta para actualizar?
pensé en algo como esto: (pero que no tienen una idea de si es aún posible)
Parent parent = hibernateTemplate.find("from Mother,Father where name="
+ name);
No funciona, obtengo El padre no está mapeado (excepción de Hibernación) – stdcall
Bueno, luego asócielo. –
Toda la idea es que no se mapee, es una clase abstracta, el padre y la madre toman su mapeo básico de ella. – stdcall