¡Esta es una revisión vieja del documento!


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). PlantUML Graph

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

Ejercicio01

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

  • Crea el enumerado TipoVia
  • Crea el enumerado TipoMovimiento
  • Crea la clase NIF
  • Crea la clase CodigoCuentaCliente
  • Añade a la clase Domicilio la propiedad tipoVia
  • Añade a la clase Movimiento la propiedad tipoMovimiento
  • En la clase Cliente haz que la propiedad nif sea del tipo NIF pero que en Hibernate sea un componente en vez de una nueva entidad.
  • En la clase Cuenta haz que la propiedad ccc sea del tipo CodigoCuentaCliente pero que en Hibernate sea un componente en vez de una nueva entidad.
  • Modifica las clases Cuenta, Movimiento y Domicilio para que Hibernate genere automáticamente las claves primarias haciendo un SELECT MAX() para obtener la nueva clave primaria.
  • Modifica también las clases Cliente y Domicilio para que se genere también automáticamente la clave primaria pero teniendo en cuenta que la clave primaria de una clase siempre debe ser igual a la de la otra.
  • Haz que en la propiedad fechaNacimiento de la clase Cliente solo se guarde la fecha y no la hora.
  • Haz que en la propiedad comentario de la clase Cliente se puedan guardar más de 255 caracteres.

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:         Cliente cliente1 = new Cliente("Sara", "Ortega", "Martínez", new Date(), new NIF("23454345Z"), "963654567", "626345765", "saraortega@gmail.com", "La diractora de la sucursal", new Domicilio(TipoVia.Avenida, "Avenidad Tres Forques", "56", "9", "Morella", "Castellon", "12300"));
2:         Cliente cliente2 = new Cliente("Marcos", "Tortosa", "Oltra", new Date(), new NIF("76567654X"), "963346578", "626678345", "mtortosa@gmail.com", "Sin comentarios", new Domicilio(TipoVia.Calle, "Calle San Juan", "4", "1", "Torrente", "Valencia", "46011"));
3:         Cuenta cuenta = new Cuenta(new CodigoCuentaCliente("56783456123454698045"), new BigDecimal("30000"));
4:         cuenta.getTitulares().add(cliente1);
5:         cuenta.getTitulares().add(cliente2);
6:         cuenta.getMovimientos().add(new Movimiento(TipoMovimiento.Haber, new BigDecimal("12000"), new Date(), "Pagar el coche"));
7:         cuenta.getMovimientos().add(new Movimiento(TipoMovimiento.Debe,new BigDecimal("1500"), new Date(), "Ingreso nómina"));

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

Ejercicio02

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

  • Crea el enumerado TipoVia
  • Crea el enumerado TipoMovimiento
  • Crea la clase NIF
  • Crea la clase CodigoCuentaCliente
  • Añade a la clase Domicilio la propiedad tipoVia
  • Añade a la clase Movimiento la propiedad tipoMovimiento
  • En la clase Cliente haz que la propiedad nif sea del tipo NIF pero que en Hibernate sea un componente en vez de una nueva entidad.
  • En la clase Cuenta haz que la propiedad ccc sea del tipo CodigoCuentaCliente pero que en Hibernate sea un componente en vez de una nueva entidad.
  • Modifica las clases Movimiento y Domicilio para que Hibernate genere automáticamente las claves primarias haciendo un SELECT MAX() para obtener la nueva clave primaria.
  • Modifica también las clases Cliente y Domicilio para que se genere también automáticamente la clave primaria pero teniendo en cuenta que la clave primaria de una clase siempre debe ser igual a la de la otra.
  • Haz que en la propiedad fechaNacimiento de la clase Cliente sólo se guarde la fecha y no la hora.
  • Haz que en la propiedad comentario de la clase Cliente se puedan guardar más de 255 caracteres.

Para ello usa las anotaciones de JPA.

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

1:         Cliente cliente1 = new Cliente("Rosa", "Vivó", "Cano", new Date(), new NIF("45698765Z"), "963459807", "626456765", "rvivo@gmail.com", "La asesora fiscal", new Domicilio(TipoVia.Avenida, "Avenidad de los naranjos", "67", "76", "Valencia", "Valencia", "46056"));
2:         Cliente cliente2 = new Cliente("Elias", "Rubio", "Muñoz", new Date(), new NIF("23098765X"), "963345654", "626198234", "erubio@gmail.com", "El peluquero", new Domicilio(TipoVia.Calle, "Calle Calvo Sotelo", "56", "23", "Requena", "Valencia", "46023"));
3:         Cuenta cuenta = new Cuenta(new CodigoCuentaCliente("34568768983456767898"), new BigDecimal("5000"));
4:         cuenta.getTitulares().add(cliente1);
5:         cuenta.getTitulares().add(cliente2);
6:         cuenta.getMovimientos().add(new Movimiento(TipoMovimiento.Haber, new BigDecimal("1500"), new Date(), "Ingreso la nómina"));
7:         cuenta.getMovimientos().add(new Movimiento(TipoMovimiento.Debe,new BigDecimal("23"), new Date(), "Recibo del Agua"));

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

ejercicios/unidad04.1348998120.txt.gz · Última modificación: 2016/07/03 20:16 (editor externo)
Ir hasta arriba
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0