0 votos
por (140 puntos) en Hibernate
Hola a todos de la comunidad, quisiera saber como detecta la herencia  aplicando la ingenieria inversa de hibernate . En primer lugar, me he creado la tabla(he utilizado la  estrategia de una tabla para toda la  jerarquia de clases) y después me genero automaticamte los pojos y los mapeos. Me genera el pojo :

<pre lang='java'>public class Empleado {

privte int idempleado;

private String nombre;

private int anioExperiencia; ->Es un atributo de la clase Tecnico
.......

¿me tengo que crear manualmente la clase Tecnico para que extienda de Empleado?¿tengo que modificar los ficheros xml? ¿teneis algun ejemplo de como utilizar esto?

¿alguna idea? gracias de antemano.


3 Respuestas

0 votos
por (8.5k puntos)
Buenas,

Una tabla para toda la jerarquía de clases?, no entiendo a lo que te refieres, no tienes una tabla Empleado y otra Técnico?

sobre el tema de la herencia en Hibernate y las distintas posibilidades hay un artículo muy bueno en Adictos Al Trabajo:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=hibInheritance#mozTocId891317

Un saludo


0 votos
por (140 puntos)
Buenos dias Torres,

Me estoy refiriendo a que en el diagrama de entidad relación tengo una entidad Empleado y otra Tecnico;y la de tecnico hereda todos los campos o atributos de Empleado(por lo tanto forma herencia). Y a la hora de pasarlo al modelo fisico de base de datos , me he creado solo una tabla para modelar la herencia ya que la entidad tecnico tiene pocos atributos(añadiendo todos los campos de empleado y tecnico y además su campo disc para saber a que entidad me refiero).

Tras esto, me he creado automaticamente los pojos y xml, los cuales me crea la clase pojo tal cual viene en la tabla.

Espero haberme explicado mejor.

gracias.


0 votos
por (8.5k puntos)
Buenas teresa,

En el enlace que te he mandado viene la explicación con el mismo ejemplo. En cuanto a tu duda, si que tienes que tener creada la clase Tecnico.


@Entity
public class Technician extends Employee {

        private int experienceYears = 0;

        public int getExperienceYears() {
                return experienceYears;
        }

        public void setExperienceYears(int experienceYears) {
                this.experienceYears = experienceYears;
        }
}

Un saludo


Preguntas relacionadas

0 votos
1 respuesta
0 votos
0 respuestas
preguntado por sol (100 puntos) Ene 28, 2016 en Hibernate
0 votos
0 respuestas
preguntado por alexjjj (20 puntos) Dic 4, 2022 en C/C++
0 votos
0 respuestas
preguntado por Dax.h.alfa (20 puntos) Ene 15, 2023 en C/C++
0 votos
1 respuesta
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...