Hibernate: ¿Cómo puedo unir 2 clases en una mesa?
Pregunta
Por lo tanto, soy bastante nuevo en hibernación y tengo un problema.
Tengo una clase abstracta (la super-clase, clase súper), y 5 subclases que deben utilizar las propiedades de la superclase y añadir una nueva propiedad (una nueva columna)
Entonces, ¿cómo puedo hacer esto? Debería ampliar la superclase de Java, o no lo suficiente como para unirse a las clases utilizando una anotación de APP.
Aquí está el segundo problema. ¿Cómo puedo tener 1 mesa para 2 clases. Alguien (más lista que yo) me dijo que usara el @JoinTable , sino que forman mis búsquedas con Google, creo que es necesario para el uso @Inheritance (estrategia InheritanceStrategy.JOINED =)
¿Puedo utilizar el @JoinTable también?
No hay solución correcta
Otros consejos
el suyo es un caso de herencia:
- añadir la anotación
@Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE)
en suSuper
- añadir la anotación
@DiscriminatorColumn
(y el establecimiento de suname
atributos ydiscriminatorType
) (de nuevo en elSuper
) - en cada subclase
extend
laSuper
, y añadir la@DiscriminatorValue
anotación, con un valor diferente para cada una de las subclases.
Si usted es nuevo en hibernación, debe leer su documentación. Estrategias de herencia se explican aquí y el uso de anotaciones para expresar estrategia de heredar se explica aquí