Comencemos con la clase Ejemplo 13 Control TAF la vamos a ir a buscar ejemplos Jcsé y la modificamos.
Bueno, lo primero que tenemos que manejar la conexión, ir a buscar una conexión al pool con el trae
con recurso, manejÃ transacción.
Por lo tanto, tenemos que modificar el auto commit en fols.
Bueno, luego el trait catch para anidar todas estas operaciones que están dentro esta misma transacción
como un bloque y manejar el comit al final y en el catch en caso de error.
El rollback muy parecido a lo que vimos.
Pero bueno, acá trabajando ya con dos tablas y dos repositorio, comencemos lo primero por acá el Troi
con recurso Connection Connection importamos conexión o con mejor com le ponemos.
Perfecto igual nuestra clase conexión entonces conexión base dato punto get connection.
Bien, entonces por acá vamos a colocar una llave y después al final vamos a bajar por acá y acá cerramos.
Listo.
Ahí tenemos tónica.
Entonces ya tenemos la conexión.
Ahora vamos a subir por acá.
Tenés que pasar el con acá.
Se fijan?
Entonces con Yaí se soluciona el error?
Bien, pero acá tenemos un solo repositorio producto, pero además vamos a tener el repositorio categoría
y por supuesto manejar transacciones.
Yo creo que lo siguiente sería justamente configurar el atomista if guet auto commit.
Entonces si es true lo dejamos en fols.
Bajamos.
Punto set autocomplete falls.
Bien, eso sería lo primero.
Lo siguiente vamos a bajar el commit, pero en realidad antes del comit tenemos que tener un 3.
Se acuerdan?
Entonces tenemos que subir.
En realidad tenemos que subir por acá y acá.
El trae a ese.
Parece que si bajamos por acá tenemos el catch.
Ese exception le vamos a llamar simplemente e bajamos e punto print stag 3 justo arriba de esto y dejamos
el rollback entonces con punto rollback.
Ahí lo tenemos.
Y también acá el commit falta dentro del trip.
Justo al final de este vamos a bajar acá uno más con punto commit.
Lo tenemos todo manejando transaccion, pero tenemos un solo repositorio producto.
Tenemos que agregar otro más de categoría repositorio.
Del tipo categoría, repositorio, categoría.
New Categoría Repositorio.
Y le pasamos la conexión.
Entonces ahora tenemos que insertar una nueva categoría.
Vamos a colocar un título, un shout, insertar nueva categoría.
Pero podríamos agregar esto acá los seleccionamos Control C y lo pegamos acá.
Y también por acá.
Bajamos acá, creamos la instancia categoría con algún nombre, pero un poco más abajo.
Si se fijan por acá, de hecho acá es acá, lo vamos a mover más arriba.
Entonces lo seleccionamos y con el comando Mover sentencian.
Control Cheff, la flecha hacia arriba, lo movemos, se fijan, lo movemos hasta acá.
Entonces tenemos el new categoría.
Pero Leydi no va porque lo vamos a insertar.
Se fijan?
Vamos a crear una nueva categoría.
Entonces en realidad en vez de ser Heidy, esto acá lo quitamos.
Vamos a colocar el nombre set nombre, por poner un ejemplo, puede ser electro hogar o línea blanca
como le queramos llamar, pero electro está bien.
Se fijan solamente el nombre porque vamos a crear una nueva categoría.
Cuál es el siguiente paso?
Bueno, tenemos que insertar crear esta categoría utilizando el repositorio categoría entonces repositorio
categoría punto por acá tenemos el guardar, guardar la categoría, entonces categoría.
Ahí lo tenemos.
Pero recuerden esto devuelve el objeto categoría con el Heidy modificado se fijan le asigna Leydi con
el cual se creó enlazarlos y es importante para la relación con producto.
Entonces en realidad esto acá lo tenemos que asignar a categoría a categoría igual se fijan.
Entonces creamos una categoría acá con el new, le asignamos el nombre, la pasamos acá, la guardamos
y devuelve a esta misma categoría, pero con el Leidy o incluso podríamos crear otra alternativa.
Por ejemplo Categoría Nueva Categoría Nueva Categoría Nueva C Nueva categoría mejor para diferenciar
ésta de ésta que contiene la idea.
Luego le tenemos que asignar esta nueva categoría acá al producto, en el nuevo producto.
Pero bueno, acá lo tenemos, se fijan?
Zeth Categoría.
Bueno, en vez de categoría, en realidad sería nueva categoría.
Entonces, si le quitamos nueva categoría que contiene Leidy, luego ahora pasamos al guarda del producto.
Pero si revisamos acá producto repositorio el guardar que lo tenemos por acá pasamos.
Categoría Heidy.
Entonces, producto punto de qué categoría a punto en qué taide al producto le pasamos, la categoría
será pasamos, se fijan control ήταν si la pasamos acá, acá ser categoría volvemos.
Volvemos a guardar acá.
Y qué categoría tiene?
El último Heidy insertó.
Recuerden que categoría repositorio que lo tenemos acá.
Cuando guardamos acá le asignamos la categoría a puntos Zhi con el cursor el get llenare X y este sería
el proceso.
Volvemos ejemplo JS Y qué me faltaría?
Bueno, la idea de probar el rollback cuando falla.
Bueno y por supuesto crear un nuevo producto porque notebook omen HPI ya lo tenemos y no es un electro
hogar, entonces lo vamos a modificar, vamos a bajar y vamos a cambiar el producto que queremos crear.
Entonces lo seleccionamos, lo quitamos, vamos a colocar refrigerador Samsung o lo que quieran.
Un precio 9000 mil, no siento la fecha.
Está bien la categoría buena nueva categoría, la que creamos acá, la que insertamos acá con su nuevo
Heidy, importante, no categoría y categoría y guardamos producto, pero faltaría otra cosa más.
Voy a dar un salto para separar categoría.
Vamos a colocar acá producto puntos set ese cabo para simular el error y haga el rollback y en realidad
no inserta la categoría ni tampoco el producto.
Bueno, porque en realidad la categoría se debiese insertar bien, porque no tenemos ningún problema,
ningún error, pero si repetimos el ese cabo por uno que cita va a ser el rollback.
La categoría tampoco se va a aceptar y por supuesto el producto menos.
Y eso es lo que queremos probar.
Entonces vamos a ir a la base auto y acá vamos a copiar un estacado que exista.
Deseada sea cierto.
Nos vamos a ir a productos, recuerden categoría lo tenemos acá seleccionar todos tenemos deporte,
tecnología, computación debería crear la 4 que es electr hogar.
Entonces acá ver en productos y acá tenemos.
Bueno, copiamos cualquiera, por ejemplo este de acá.
Doble click o lo seleccionamos.
Control C Volvemos al código.
Lo pegamos, vejan, va a dar error.
Incluso también para que visualicemos el Heidy o el último Heidy creado, lo podríamos concatenar acá
en el mensaje, pero todo guardado con éxito.
Acá 2.y un espacio más.
Producto.
Punto inquietante.
Producto.
Punto nyet Heidy.
Recuerden que guardar devuelve el producto acá, pero en realidad.
Igualmente acá estamos pasando una referencia.
Se fijan?
Nos vamos al método guardar un control de acá.
Perdón en guardar control B.
Pero está la interfaz.
En realidad acá en producto, acá pasamos el producto y devolvemos el mismo objeto.
Se fijan, devolvemos el producto modificado.
Entonces, como se pasa por referencia va a contener el Heidy ya que se le asignamos acá y lo va a mostrar.
Volvemos, aunque también se lo podríamos asignar acá, por ejemplo, producto igual a esto también,
pero daría la misma.
Íbamos a copiar esto tal cual copiar y lo pegamos acá en el guardar.
Pero de la categoría acá sería categoría o nueva categoría, nueva categoría a punto en que Leidy perfecto.
Y por acá sería categoría guardada con éxito.
Guardada con éxito, está molesto.
Levantemos contra el chip F10, vamos a pasar.
Lanza al error.
Así que hasta momento está bien.
Veamos de qué se trata.
Estás duplicado.
Perfecto.
Eso es lo que quería probar.
Entonces solamente muestra hasta el producto teclado y BM mecánico, que fue lo último que vimos.
Y por supuesto que la categoría no la debería de haber insertado.
Vamos a revisar.
Nos vamos acá.
Vamos a ir a categoría y hacemos acá un execute de Bejan.
No pasa nada.
No le insertó producto, menos todavía porque dio el error.
Así que está bien, ahora como falló hizo un rollback actualmente Leidy está en 4, no cierto porque
trató de crear la categoría, quedó en el Heidy 4, se hizo un rollback y se eliminó, por lo tanto
la próxima categoría debiese estar en el Heidy 5 y no en el 4.
Veamos entonces ahora sí que si vamos a crear o vamos a asignar en realidad acá alguno que no exista.
Entonces uno, dos, tres.
Y acá F.
G.
Recuerden que son tías.
Acá tenemos cinco, seis, siete, ocho, nueve, diez.
Perfecto.
Ahora sí que debería crear bien el producto.
Bueno, primero la categoría y luego el producto con la relación.
Vamos a ver.
Control Chef F10.
Ahora si ningún error.
Todo perfecto.
Primero Lyta te fijas cuando crea la categoría?
O antes de crear el producto?
Lyta Acá los productos, acá tenemos.
Bueno, categoría guardada con éxito se fijan hoy día 5 Bien lo creó con el Edy 5, así que ya obtuvimos
el último ití.
Luego lyta los productos hasta el 10 nomás.
Luego por ahí di el 1 producto Guardá con éxito 12 se fijan muestra el último y10 y Calita el 12 refrigerador
Samsung Electro hogar con la nueva categoría.
Vamos a revisar hacemos execute 5 Electro hogar nos vamos a pro-ducto éxico out 12 y por acá categoría
5 recuerden 5 apunta a electro hogar y como tenemos una consulta con Yeung, acá muestra electro hogar.
Refrigerar son electro hogar, así que está perfecto para que sea un poco más simple.
Lo hice en el método Main directamente, pero a partir de la siguiente clase ya vamos a trabajar con
la clase servis y llevar toda esta lógica negocio.
Desacoplar todo lo que sean datos, lógica, negocio, traja con repositorio, con transacciones.
Todo eso se lleva a una clase servis.
De esa forma queda mucho más limpio nuestro controlador o nuestra clase.
Con el método Main lo dejamos hasta acá y continuamos en la siguiente clase.