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).
El modelo de tablas asociado a las entidades es el siguiente:
Modifica el Ejercicio01 de la unidad anterior para incluir las siguientes tareas:
Siguiendo el diagrama de clases Java anterior:
TipoAsistencia
y sus valoresSexo
y sus valoresNIF
, su propiedad y los métodos get/setCoberturas
, sus propiedades y los métodos get/setEnfermedades
, sus propiedades y los métodos get/setSeguro
para incluir las nuevas propiedades y los nuevos métodos get/setSeguro
haz que la propiedad nif
sea del tipo NIF
pero que en Hibernate sea un componente en vez de una nueva entidad.enfermedades
y coberturas
sean componentes de la clase Seguro
.AsistenciaMedica
para incluir las nuevas propiedades y los nuevos métodos get/setSeguro
y AsistenciaMedica
para indicar a Hibernate que la base de datos genera automáticamente las claves primarias usando un autonumérico.fecha
de la clase AsistenciaMedica
solo se guarde la fecha y no la hora.hora
de la clase AsistenciaMedica
solo se guarde la hora y no la fecha.explicacion
de la clase AsistenciaMedica
se puedan guardar más de 255 caracteres.importe
de la clase AsistenciaMedica
se guarde como un BigDecimal
.
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:
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.
Modifica el Ejercicio02 de la unidad anterior para incluir las siguientes tareas:
Siguiendo el diagrama de clases Java anterior:
TipoAsistencia
y sus valoresSexo
y sus valoresNIF
, su propiedad y los métodos get/setCoberturas
, sus propiedades y los métodos get/setEnfermedades
, sus propiedades y los métodos get/setSeguro
para incluir las nuevas propiedades y los nuevos métodos get/setSeguro
haz que la propiedad nif
sea del tipo NIF
pero que en Hibernate sea un componente en vez de una nueva entidad.enfermedades
y coberturas
sean componentes de la clase Seguro
.AsistenciaMedica
para incluir las nuevas propiedades y los nuevos métodos get/setSeguro
y AsistenciaMedica
para indicar a Hibernate que la base de datos genera automáticamente las claves primarias usando un autonumérico.fecha
de la clase AsistenciaMedica
solo se guarde la fecha y no la hora.hora
de la clase AsistenciaMedica
solo se guarde la hora y no la fecha.explicacion
de la clase AsistenciaMedica
se puedan guardar más de 255 caracteres.importe
de la clase AsistenciaMedica
se guarde como un BigDecimal
.Para ello usa las anotaciones de JPA.
La clase Main
deberá incluir el siguiente código de creación de los distintos objetos:
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.