4.2 Estrategia de Asignación - JOINED

<< Anterior - Volver Menu JPA - Siguiente >>

Este tipo de estrategia quiere decir que al momento de mapearse en la base de datos se generar una tabla para cada subclase.

Nota: No se puede olvidar que en la jerarquía de las clases solo una de las clases debe tener el estereotipo @Id, esto quiere decir que la llave primaria debe estar una sola vez en la jerarquía.

Para realizar este tipo de estrategia en Taylor es lo mismo que en la anterior estrategia pero en la parte de propiedades del objeto Generalization se cambia el valor del atributo Strategy al valor JOINED seleccionándolo del combobox. Esto lo podemos ver en la siguiente imagen:

propiedadesTaylor2.JPG

A continuación podremos ver la jerarquía de relación de un ejemplo en la perspectiva de Taylor en eclipse:

perspectivaTaylor9.JPG

En el siguiente segmento podremos observar como queda en lenguaje java la jerarquías de las entidades del anterior ejemplo aplicando el tipo de estrategia JOINED:

Clase Entidad Persona.class:

@Entity
@Inheritance(strategy = InheritanceType.JOINED) // Anotacion que realiza la estrategia de asignación
public class Persona implements Serializable, Cloneable{
    /** @generated */
    private static final long serialVersionUID = 1L;

    /** @generated */
    public Persona() {
    }

    private String identificacion = null;

    private String nombre = null;

    private String primerApellido = null;

    private String segundoApellido = null;

    private String direccion = null;

    private String telefono = null;

    private String celular = null;

    *
    *
    *    Métodos getters y setters con sus respectivo atributos,
    *    anotaciones y resto de código necesario.
    *
    *

}

Clase Entidad Estudiante.class:

@Entity
// Entidad que extiende o hereda la de la clase Persona
public class Estudiante extends Persona implements Serializable, Cloneable{
    /** @generated */
    private static final long serialVersionUID = 1L;

    /** @generated */
    public Estudiante() {
    }

    private Long semestre = null;

    private String carrera = null;

    private String universidad = null;

    *
    *
    *    Métodos getters y setters con sus respectivo atributos,
    *    anotaciones y resto de código necesario.
    *
    *

}

Clase Entidad RepresentanteSalon.class:

@Entity
//Entidad que extiende o hereda la de la clase Estudiante
public class RepresentanteSalon extends Estudiante implements Serializable, Cloneable{
    /** @generated */
    private static final long serialVersionUID = 1L;

    /** @generated */
    public RepresentanteSalon() {
    }

    private String reunion = null;

    private String tema = null;

    private Date fecha = null;

    private Boolean asistencia = null;

    *
    *
    *    Métodos getters y setters con sus respectivo de los 
    *    atributos y resto de código necesario.
    *
    *

}

En las siguientes imágenes podremos ver como se mapea las entidades en la Base de Datos:

mapeoBD18.JPG
mapeoBD19.JPG
mapeoBD20.JPG

Lo que podemos concluir con respecto a lo visto en la anteriores tres imágenes es que por cada subclase de la jerarquía se genera una tabla, y si vemos detenidamente en cada tabla que corresponde al la subclase se genera también un atributo llamado IDENTIFICACION, que en este caso corresponde a la llave primaria de la entidad padre Persona, lo cual quiere decir que ese campo también sera la llave primarias para cada una de las tablas que corresponden a la entidades Hijas.

<< Anterior - Volver Menu JPA - Siguiente >>

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License