Читать книгу Desarrollo de aplicaciones web con Jakarta EE - César Francisco Castillo - Страница 24
2.5 Jerarquías
ОглавлениеEn algunas ocasiones, al diseñar el modelo de datos, nos encontraremos con tipos y subtipos de entidades que se encuentran relacionados entre sí; el tipo o supertipo agrupa características comunes y los subtipos contienen características específicas. En la Figura 2.5 se observa un ejemplo de tipo y subtipo:
Figura 2.5 Jerarquías entre tablas.
Por naturaleza sabemos que tanto los alumnos como los docentes son personas, por lo que en la tabla personas tendremos los campos comunes a ellos, tales como identificador, número de documento, nombre, apellido, etc., mientras que en las otras tablas tendremos los campos específicos de cada entidad, por ejemplo, los campos sueldo y horas de cátedra para los docentes y número de legajo y fecha de ingreso para los alumnos.
Para poder representar esta situación, emplearemos la herencia de clases: la tabla personas será la clase base y las tablas alumnos y docentes serán subclases de personas.
Para representar la clase Persona, emplearemos la anotación @Inheritance como se observa en el siguiente fragmento de código:
Por el contrario, en Alumno y Docente se debe utilizar la anotación @ PrimaryKeyJoinColumn para especificar cuál es el campo por el cual se va a establecer la relación. El siguiente fragmento de código muestra cómo quedan representadas ambas clases: