Tabla de Contenidos

Claves Primarias y Tipos de datos

En esta unidad vamos a generar automáticamente las claves primarias, crear componentes de Hibernate y añadir enumerados.

En los ejercicios de esta unidad se van a usar la siguientes clases Java (entidades).


class Seguro
Seguro : int idSeguro
Seguro : NIF nif
Seguro : String nombre
Seguro : String ape1
Seguro : String ape2
Seguro : int edad
Seguro : Sexo sexo
Seguro : boolean casado
Seguro : int numHijos
Seguro : boolean embarazada
Seguro : Coberturas coberturas
Seguro : Enfermedades enfermedades
Seguro : Date fechaCreacion

class Coberturas
Coberturas : boolean oftalmologia
Coberturas : boolean dental
Coberturas : boolean fecundacionInVitro

class Enfermedades
Enfermedades: boolean corazon
Enfermedades: boolean estomacal
Enfermedades: boolean rinyones
Enfermedades: boolean alergia
Enfermedades: String nombreAlergia

class NIF
NIF:nif

class Sexo <>
Sexo : Hombre
Sexo : Mujer

class AsistenciaMedica
AsistenciaMedica: int idAsistenciaMedica
AsistenciaMedica: Seguro seguro
AsistenciaMedica: String breveDescripcion
AsistenciaMedica: String lugar
AsistenciaMedica: String explicacion
AsistenciaMedica: TipoAsistencia tipoAsistencia
AsistenciaMedica: Date fecha
AsistenciaMedica: Date hora
AsistenciaMedica: BigDecimal importe

class TipoAsistencia <>
TipoAsistencia : Hospitalaria
TipoAsistencia : Ambulatoria
TipoAsistencia : CentroSalud
TipoAsistencia : Domiciliaria

Coberturas "1"-"1" Seguro
NIF "1"--"1" Seguro
Sexo "1" -- "*" Seguro
Seguro "1"-"1" Enfermedades


Seguro "1"--"*" AsistenciaMedica

AsistenciaMedica "*" - "1" TipoAsistencia

El modelo de tablas asociado a las entidades es el siguiente:

«Table»SeguroINTEGER idSeguroVARCHAR nifVARCHAR nombreVARCHAR ape1VARCHAR ape2INTEGER edadINTEGER sexoTINYINT casadoINTEGER numHijosTINYINT embarazadaTINYINT oftalmologiaTINYINT dentalTINYINT fecundacionInVitroTINYINT corazonTINYINT estomacalTINYINT rinyonesTINYINT alergiaVARCHAR nombreAlergiaTIMESTAMP fechaCreacion«Table»AsistenciaMedicaINTEGER IdAsistenciaMedicaINTEGER IdSeguroVARCHAR breveDescripcionVARCHAR lugarTEXT explicacionVARCHAR TipoAsistenciaDATE fechaTIME horaINTEGER idxDECIMAL(10,2) importe1*

Ejercicio01

Modifica el Ejercicio01 de la unidad anterior para incluir las siguientes tareas:

Siguiendo el diagrama de clases Java anterior:

Para ello usa los ficheros “.hbm.xml” de Hibernate.

La clase Main deberá incluir el siguiente código de creación de los distintos objetos:

1
SimpleDateFormat sdfFecha=new SimpleDateFormat("dd/MM/yyyy");
sdfFecha.setLenient(false);
SimpleDateFormat sdfHora=new SimpleDateFormat("HH:mm:ss");
sdfHora.setLenient(false);
Seguro seguro = new Seguro(new Nif("36254784E"), "Rosa", "Ramirez", "Arellano", 41, Sexo.Mujer, true, 1, false, new Coberturas(false, true, false), new Enfermedades(true, false, true, false, null), new Date());
AsistenciaMedica asistenciaMedica1 = new AsistenciaMedica(seguro, "Golpe en el brazo", "Madrid", "Fractura del radio derecho de la mano debido a golpe contundente con el suelo. Se escayola el brazo", TipoAsistencia.Hospitalaria, sdfFecha.parse("31/12/2013"),sdfHora.parse("11:21:45"), new BigDecimal("700.31"));
AsistenciaMedica asistenciaMedica2 = new AsistenciaMedica(seguro, "Fiebre alta", "Alzira", "El paciente presenta cuadro alto de fiabre con deficultad para respirar. Se recetan antibioticos.", TipoAsistencia.Ambulatoria, sdfFecha.parse("27/02/2013"), sdfHora.parse("12:34:16"), new BigDecimal("81.14"));
seguro.getAsistenciasMedicas().add(asistenciaMedica1);
seguro.getAsistenciasMedicas().add(asistenciaMedica2);

Ahora añade a la clase Main el código de hibernate necesario para que al guardar el objeto seguro se guarde todo en la base de datos.

Ejercicio02

Modifica el Ejercicio02 de la unidad anterior para incluir las siguientes tareas:

Siguiendo el diagrama de clases Java anterior:

Para ello usa las anotaciones de JPA.

La clase Main deberá incluir el siguiente código de creación de los distintos objetos:

1
SimpleDateFormat sdfFecha=new SimpleDateFormat("dd/MM/yyyy");
sdfFecha.setLenient(false);
SimpleDateFormat sdfHora=new SimpleDateFormat("HH:mm:ss");
sdfHora.setLenient(false);
Seguro seguro = new Seguro(new Nif("48573562T"), "Sara", "Tomas", "Martínez", 31, Sexo.Mujer, true, 1, true, new Coberturas(true, true, true), new Enfermedades(false, true, false, true, "Acaros"), new Date());
AsistenciaMedica asistenciaMedica1 = new AsistenciaMedica(seguro, "Operación de miopía", "Barcelona", "El paciente es operado de miopía en los dos ojos.", TipoAsistencia.Hospitalaria, sdfFecha.parse("18/04/2013"),sdfHora.parse("08:30:00"), new BigDecimal("10400.20"));
AsistenciaMedica asistenciaMedica2 = new AsistenciaMedica(seguro, "Analisis de alergia", "Alzira", "Se realizan analisis de sangre para determinar el tipo de alergia que padece el paciente.", TipoAsistencia.Ambulatoria, sdfFecha.parse("12/02/2012"), sdfHora.parse("18:30:00"), new BigDecimal("31.15"));
seguro.getAsistenciasMedicas().add(asistenciaMedica1);
seguro.getAsistenciasMedicas().add(asistenciaMedica2);

Ahora añade a la clase Main el código de hibernate necesario para que al guardar el objeto seguro se guarde todo en la base de datos.