Bien, continuamos con la clase Entity, pero primero tenemos que crear nuestro РАМКАХ.
Nos vamos al Paquet principal.
Recuerden que todos los РАМКАХ y todas las clases de nuestro proyecto siempre tienen que estar dentro
del base donde se encuentra la clase anotada con Spring Boot apliqué hecho.
Entonces por este package vamos a crear otro package.
Punto Models, punto Entity, perfecto.
Finalizamos.
Acá tenemos el paquete, vamos a crear nuestra clase.
Que va a estar más pegada a la tabla, una clase de JPA, un entity cliente, finalizamos.
Bien, lo primero para indicar que una clase POJO, con atributos y metodos getter y setter que está
mapeado una tabla es una entidad de JPA o Internet.
Tenemos que anotar decorar con Entity el lo primero vamos a importar.
De yaks persistencia.
Siempre importamos de Java, de Java.
Persistencia Bien, lo segundo, y esto es opcional porque se puede omitir si queremos que nuestra clase
Entity se llame exactamente igual que la tabla.
En la Ayato omitimos la configuración del nombre de la tabla.
Omitimos la anotación table o table que para configurar el nombre de la tabla importamos table o table.
Con los paréntesis indicamos el name.
También podemos indicar el esquema, el catálogo.
Vamos a colocar el nombre de la tabla en minúscula, completamente y en plural con s.
Bueno, en general esto es una nomenclatura por lo menos utilizada mucho en mi SQL, donde las tablas
van en minúsculas, se escriben completamente en minúscula y terminan en plural en s.
A diferencia del nombre de clase que comienza con mayúscula y es en singular, es un estándar de Java.
Bueno, y tiene bastante sentido porque si lo miramos, el punto vista una tabla tiene muchos elementos,
muchos registros, mientras que una clase es una plantilla para crear una instancia, un solo objeto.
Por eso las tablas por lo general van en plural con s y las clases en Java van en singular.
Implemente ser realizable y portábamos realizable y vamos a crear el atributo difficult serel versión.
Pueden colocar default o generar un sería adversión.
Da lo mismo.
Bien, recordemos que implementar realizable en estos tipos de clase es recomendado porque muchas veces
se trabaja con serialización el proceso de convertir un objeto en una secuencia de bits para almacenarlo
o transmitirlo a la memoria, por ejemplo, o a una base auto o a un Jaison o XML, o cuando trabajamos
con sesiones http se requiere realizar y para eso tenemos que implementar esta interfaz.
Pasa lo mismo con JPA.
Al final es sacralizar cuando guardamos un objeto en la sesión http es recomendable siempre implementar
realizable para nuestra clase.
Sentite con JPA e Internet.
Bien.
Y cuáles son nuestros atributos?
Primero el más importante el Heidy del tipo Long.
Es importante que el lonco que parte con mayúscula del tipo de referencia de una clase, no del tipo
primitivo con minúscula que nos permite trabajar con conversiones de tipos.
Acá tenemos que indicar que este atributo es la llave primaria.
Lo hacemos con la anotación Heidy la vamos a importar también siempre de Evax.
Básicamente Heidy lo que hace es indicar que este atributo es la llave.
Nada más.
Luego tenemos Generated Value.
Lo vamos a importar.
Acá indicamos cuál es la estrategia en que genera la llave la Ayato, el motor.
Por ejemplo, comencé SQL con SQL Server se genera de forma automática auto incremental de uno en uno.
Es el por defecto.
Entonces acá indicamos la estrategia con strategy igual identity auto incremental.
También tenemos secues que se utiliza por ejemplo en Oracle.
También en post SQL.
En nuestro caso como SQL con H2, con SQL Server Identity y tenemos listo el Heidy.
Vamos a tener un nombre.
Vamos a tener un apellido, un email y también una fecha
que le vamos a llamar Create at o creado en una fecha de creación.
Vamos a importar de Java útil importante que sea de llebaba útil y no de base.
Quale ya va.
Útil.
Perfecto.
Automáticamente una clase que está anotada con Entity de persistencia.
Todos los demás atributos campos de la clase se van a mapear de forma automática, sin configurar nada,
sin anotar, pero por defecto va a mapear a un campo que se llama exactamente igual.
Por ejemplo, la tabla Clientes en este caso va a tener una llave auto incremental.
Heidy va a tener el nombre un campo nombre que se llama exactamente igual en minúscula un campo apellido,
un campo email y una fecha AT también un campo.
Pero bien, qué pasa si un atributo de nuestra clase se llama distinto al nombre un campo en la tabla?
Eso también lo puedo configurar.
Por ejemplo, acá con Colum pueden Hokuto, Mizar importamos de Java hacks persistentes por poner un
ejemplo.
Después lo voy a quitar name un string y el nombre.
Entonces si mi atributo se llama nombre en la clase, pero el campo de la Ayato se llama nombre un bajo
cliente, lo tengo que indicar o incluso podría ser en mayúscula nombre cliente se fijan, pero bien
es para customizar.
También tenemos otros atributos para indicar el largo, pero en la datos el burchard.
Cuanto carretera va a tener el campo en la tabla?
Si acepta nulos por defecto es nu lable.
Es en true lo podemos cambiar.
Por ejemplo Ráfols la precisión cuando trabajamos por ejemplo con decimales con tipo de dato.
Float o dobles o big decimal.
En fin, si el campo es único para agregar un constraint, una llave del tipo y única, si este campo
o atributo es actualizable en la base auto y si es insertarle atributos para configurar y customizar
bien, lo voy a quitar porque la idea de que se llame igual nombre en la tabla y en la clase, pero
acá sí que vamos a usar el columna.
Por qué?
Porque acá en Yaba los nombres compuestos, ya sea de clase, atributos, métodos, siempre por estándar
y buenas prácticas, se separan con mayúscula create at una palabra.
La segunda palabra inicia mayúscula solamente cuando comienza.
Nombre compuesto, por ejemplo aka generation, type una palabra y type otra palabra.
La t e mayúscula son convenciones de nombre en yaba.
Entonces, en base a esto, los estándares y convenciones son un poco distinta.
Lo más común es separar con guión bajo nombre de campos en las tablas, incluso nombre de tablas.
También con guión bajo.
Entonces acá tenemos que indicar que se llama distinto create create, guion bajo, add
y también temporal.
Solamente para fechas vamos a importar.
Lo que hace temporal es indicar el formato en que se va a guardar esta fecha de YABA en la tabla Trace
dato en el campo Create at, por ejemplo.
La podemos guardar del tipo date.
Es decir, solamente la fecha, si la hora y los minutos de los segundos.
Solamente la fecha, el time.
Solamente la hora, hora, minuto, segundo.
Y el teista es completa hora y fecha.
Bien, vamos a usar date.
Y por último, para finalizar, tenemos que crearlo.
Método getter y setter.
Muy importante clic derecho sources general que teran setter.
Marcamos todos select al ok.
Generar.
Vamos a ordenar con click derecho.
Source format y guardamos bien, tenemos lista nuestra clase client.
Entonces la próxima clase vamos a crear el DAO, la clase de acceso a datos.
Primero su interfaz y después la vamos a implementar con JPA a través del lente Timanfaya.
Pero bien, un tema importante que quería mencionar gran parte de la clase que hasta el momento de esta
primera parte del curso, lo que llevamos hasta ahora ha sido actualizaciones, clases que buelto grabar
y actualizar.
Pero a partir de la próxima clase comienzan los videos originales.
Pero no se preocupen porque prácticamente todo el código que sigue es 100 por ciento compatible con
las últimas versiones de Spring.
Bueno, hay uno que otro detalle que vamos a ver, que vamos a actualizar y algunos videos que vamos
a volver a grabar.
Esto lo digo porque probablemente en la próxima clase se den cuenta en las clases originales, se den
cuenta de que estoy usando el JDK 8, pero en realidad da igual si usamos el 8, el 11, el 12.
Los proyectos van a funcionar igual, independiente de la versión de JDK del 8 o 11.
Pero bien, igual es cierto que hay algunos detalles que hay que ver y que hay que analizar, pero lo
vamos a ver en su momento con los video de actualización, como por ejemplo el JDK 8.
Hay librerías módulos del JDK que se incluyen, pero después en la versión 11 se eliminan, pero salir
de días la tenemos que agregar en el post XML.
Así que prácticamente es un detalle muy simple que lo vamos a ver también en su momento.
También es probable que se den cuenta de que hay un par de proyectos que habían antes en la primera
sección, pero ya no la tenemos.
Pero no se preocupen porque en realidad fueron proyectos que renombre o reemplacé por lo que vimos en
la primera parte del curso.
En las primeras secciones todo lo relacionado a Spring MDC, inyección de dependencia, en fin.
Bueno, quería comentar esto último y quedamos hasta acá.
Nos vemos.