Buenas, tengo una duda sobre como mapea jpa la herencia en una base de datos:
Supongamos que hay dos clases: Usuario y Empleado. Empleado hereda de Usuario y la estrategia a usar en Usuario es @Inheritance(strategy=InheritanceType.JOINED), es decir, una tabla para la clase base y luego una tabla por cada clase hija. Según veo en la base de datos se genera una tabla para Usuario y otra para Empleado, pero la tabla de Empleado, la Id que tiene es una clave externa de Usuario (que la debe de usar como clave primaria también?). ¿Es correcta esta forma de mapear o debería tener una id propia Empleado?
He estado probando un poco y funcionar funciona, es decir, si borro un Empleado se borra automáticamente la entrada en la tabla de Usuario con esa misma Id, pero no estoy seguro si esta es una buena forma o no por no tener una clave primara propia la clase Empleado.
Me respondo a mi mismo: está bien. He mirado en un libro que he topado por casa y explica que en esta estrategia las llaves primarias de las tablas de las clases hijas son las llaves primarias de la clase padre.
Buenas, tengo una duda sobre como mapea jpa la herencia en una base de datos:
Supongamos que hay dos clases: Usuario y Empleado. Empleado hereda de Usuario y la estrategia a usar en Usuario es @Inheritance(strategy=InheritanceType.JOINED), es decir, una tabla para la clase base y luego una tabla por cada clase hija. Según veo en la base de datos se genera una tabla para Usuario y otra para Empleado, pero la tabla de Empleado, la Id que tiene es una clave externa de Usuario (que la debe de usar como clave primaria también?). ¿Es correcta esta forma de mapear o debería tener una id propia Empleado?
He estado probando un poco y funcionar funciona, es decir, si borro un Empleado se borra automáticamente la entrada en la tabla de Usuario con esa misma Id, pero no estoy seguro si esta es una buena forma o no por no tener una clave primara propia la clase Empleado.
Gracias de antemano y un saludo.