1
00:00:00,240 --> 00:00:06,540
Comencemos con la clase Ejemplo 13 Control TAF la vamos a ir a buscar ejemplos Jcsé y la modificamos.

2
00:00:06,660 --> 00:00:11,700
Bueno, lo primero que tenemos que manejar la conexión, ir a buscar una conexión al pool con el trae

3
00:00:11,730 --> 00:00:13,710
con recurso, manejÃ transacción.

4
00:00:13,770 --> 00:00:16,530
Por lo tanto, tenemos que modificar el auto commit en fols.

5
00:00:16,660 --> 00:00:22,380
Bueno, luego el trait catch para anidar todas estas operaciones que están dentro esta misma transacción

6
00:00:22,470 --> 00:00:26,970
como un bloque y manejar el comit al final y en el catch en caso de error.

7
00:00:27,060 --> 00:00:28,680
El rollback muy parecido a lo que vimos.

8
00:00:28,710 --> 00:00:35,730
Pero bueno, acá trabajando ya con dos tablas y dos repositorio, comencemos lo primero por acá el Troi

9
00:00:35,730 --> 00:00:44,500
con recurso Connection Connection importamos conexión o con mejor com le ponemos.

10
00:00:44,520 --> 00:00:52,050
Perfecto igual nuestra clase conexión entonces conexión base dato punto get connection.

11
00:00:52,290 --> 00:01:00,540
Bien, entonces por acá vamos a colocar una llave y después al final vamos a bajar por acá y acá cerramos.

12
00:01:01,380 --> 00:01:01,800
Listo.

13
00:01:01,980 --> 00:01:02,940
Ahí tenemos tónica.

14
00:01:03,170 --> 00:01:04,650
Entonces ya tenemos la conexión.

15
00:01:04,830 --> 00:01:06,750
Ahora vamos a subir por acá.

16
00:01:06,780 --> 00:01:08,550
Tenés que pasar el con acá.

17
00:01:08,970 --> 00:01:09,480
Se fijan?

18
00:01:09,540 --> 00:01:12,500
Entonces con Yaí se soluciona el error?

19
00:01:12,660 --> 00:01:17,550
Bien, pero acá tenemos un solo repositorio producto, pero además vamos a tener el repositorio categoría

20
00:01:17,760 --> 00:01:19,320
y por supuesto manejar transacciones.

21
00:01:19,380 --> 00:01:27,010
Yo creo que lo siguiente sería justamente configurar el atomista if guet auto commit.

22
00:01:27,360 --> 00:01:29,340
Entonces si es true lo dejamos en fols.

23
00:01:29,640 --> 00:01:30,300
Bajamos.

24
00:01:31,290 --> 00:01:34,790
Punto set autocomplete falls.

25
00:01:35,580 --> 00:01:36,600
Bien, eso sería lo primero.

26
00:01:36,810 --> 00:01:43,430
Lo siguiente vamos a bajar el commit, pero en realidad antes del comit tenemos que tener un 3.

27
00:01:43,590 --> 00:01:44,190
Se acuerdan?

28
00:01:44,250 --> 00:01:45,210
Entonces tenemos que subir.

29
00:01:45,330 --> 00:01:48,390
En realidad tenemos que subir por acá y acá.

30
00:01:48,480 --> 00:01:50,010
El trae a ese.

31
00:01:50,370 --> 00:01:53,880
Parece que si bajamos por acá tenemos el catch.

32
00:01:57,360 --> 00:02:06,630
Ese exception le vamos a llamar simplemente e bajamos e punto print stag 3 justo arriba de esto y dejamos

33
00:02:06,630 --> 00:02:10,410
el rollback entonces con punto rollback.

34
00:02:11,430 --> 00:02:12,060
Ahí lo tenemos.

35
00:02:12,240 --> 00:02:15,330
Y también acá el commit falta dentro del trip.

36
00:02:15,420 --> 00:02:21,650
Justo al final de este vamos a bajar acá uno más con punto commit.

37
00:02:22,470 --> 00:02:27,180
Lo tenemos todo manejando transaccion, pero tenemos un solo repositorio producto.

38
00:02:27,630 --> 00:02:31,410
Tenemos que agregar otro más de categoría repositorio.

39
00:02:33,070 --> 00:02:38,530
Del tipo categoría, repositorio, categoría.

40
00:02:41,400 --> 00:02:43,320
New Categoría Repositorio.

41
00:02:45,010 --> 00:02:46,150
Y le pasamos la conexión.

42
00:02:47,800 --> 00:02:50,290
Entonces ahora tenemos que insertar una nueva categoría.

43
00:02:50,650 --> 00:02:54,820
Vamos a colocar un título, un shout, insertar nueva categoría.

44
00:02:59,260 --> 00:03:04,610
Pero podríamos agregar esto acá los seleccionamos Control C y lo pegamos acá.

45
00:03:06,460 --> 00:03:07,360
Y también por acá.

46
00:03:09,710 --> 00:03:15,200
Bajamos acá, creamos la instancia categoría con algún nombre, pero un poco más abajo.

47
00:03:15,320 --> 00:03:20,690
Si se fijan por acá, de hecho acá es acá, lo vamos a mover más arriba.

48
00:03:20,930 --> 00:03:24,700
Entonces lo seleccionamos y con el comando Mover sentencian.

49
00:03:24,770 --> 00:03:30,200
Control Cheff, la flecha hacia arriba, lo movemos, se fijan, lo movemos hasta acá.

50
00:03:30,560 --> 00:03:32,240
Entonces tenemos el new categoría.

51
00:03:32,330 --> 00:03:34,400
Pero Leydi no va porque lo vamos a insertar.

52
00:03:34,490 --> 00:03:34,870
Se fijan?

53
00:03:34,880 --> 00:03:36,260
Vamos a crear una nueva categoría.

54
00:03:36,620 --> 00:03:40,730
Entonces en realidad en vez de ser Heidy, esto acá lo quitamos.

55
00:03:40,910 --> 00:03:50,720
Vamos a colocar el nombre set nombre, por poner un ejemplo, puede ser electro hogar o línea blanca

56
00:03:50,750 --> 00:03:53,000
como le queramos llamar, pero electro está bien.

57
00:03:53,060 --> 00:03:56,450
Se fijan solamente el nombre porque vamos a crear una nueva categoría.

58
00:03:56,540 --> 00:03:57,770
Cuál es el siguiente paso?

59
00:03:57,860 --> 00:04:03,740
Bueno, tenemos que insertar crear esta categoría utilizando el repositorio categoría entonces repositorio

60
00:04:03,740 --> 00:04:09,560
categoría punto por acá tenemos el guardar, guardar la categoría, entonces categoría.

61
00:04:10,490 --> 00:04:11,090
Ahí lo tenemos.

62
00:04:11,270 --> 00:04:17,240
Pero recuerden esto devuelve el objeto categoría con el Heidy modificado se fijan le asigna Leydi con

63
00:04:17,240 --> 00:04:20,570
el cual se creó enlazarlos y es importante para la relación con producto.

64
00:04:20,750 --> 00:04:28,370
Entonces en realidad esto acá lo tenemos que asignar a categoría a categoría igual se fijan.

65
00:04:28,610 --> 00:04:33,740
Entonces creamos una categoría acá con el new, le asignamos el nombre, la pasamos acá, la guardamos

66
00:04:33,950 --> 00:04:39,770
y devuelve a esta misma categoría, pero con el Leidy o incluso podríamos crear otra alternativa.

67
00:04:39,860 --> 00:04:48,920
Por ejemplo Categoría Nueva Categoría Nueva Categoría Nueva C Nueva categoría mejor para diferenciar

68
00:04:49,100 --> 00:04:51,200
ésta de ésta que contiene la idea.

69
00:04:51,530 --> 00:04:57,920
Luego le tenemos que asignar esta nueva categoría acá al producto, en el nuevo producto.

70
00:04:58,100 --> 00:04:59,750
Pero bueno, acá lo tenemos, se fijan?

71
00:05:00,110 --> 00:05:01,220
Zeth Categoría.

72
00:05:01,920 --> 00:05:05,240
Bueno, en vez de categoría, en realidad sería nueva categoría.

73
00:05:05,420 --> 00:05:11,750
Entonces, si le quitamos nueva categoría que contiene Leidy, luego ahora pasamos al guarda del producto.

74
00:05:11,930 --> 00:05:18,060
Pero si revisamos acá producto repositorio el guardar que lo tenemos por acá pasamos.

75
00:05:18,080 --> 00:05:18,890
Categoría Heidy.

76
00:05:19,800 --> 00:05:24,180
Entonces, producto punto de qué categoría a punto en qué taide al producto le pasamos, la categoría

77
00:05:24,270 --> 00:05:30,660
será pasamos, se fijan control ήταν si la pasamos acá, acá ser categoría volvemos.

78
00:05:32,350 --> 00:05:34,120
Volvemos a guardar acá.

79
00:05:34,390 --> 00:05:35,410
Y qué categoría tiene?

80
00:05:36,520 --> 00:05:38,010
El último Heidy insertó.

81
00:05:38,260 --> 00:05:40,870
Recuerden que categoría repositorio que lo tenemos acá.

82
00:05:40,960 --> 00:05:48,900
Cuando guardamos acá le asignamos la categoría a puntos Zhi con el cursor el get llenare X y este sería

83
00:05:48,910 --> 00:05:49,420
el proceso.

84
00:05:49,660 --> 00:05:52,000
Volvemos ejemplo JS Y qué me faltaría?

85
00:05:52,180 --> 00:05:54,910
Bueno, la idea de probar el rollback cuando falla.

86
00:05:55,000 --> 00:06:00,700
Bueno y por supuesto crear un nuevo producto porque notebook omen HPI ya lo tenemos y no es un electro

87
00:06:00,700 --> 00:06:05,410
hogar, entonces lo vamos a modificar, vamos a bajar y vamos a cambiar el producto que queremos crear.

88
00:06:05,830 --> 00:06:12,310
Entonces lo seleccionamos, lo quitamos, vamos a colocar refrigerador Samsung o lo que quieran.

89
00:06:15,020 --> 00:06:19,820
Un precio 9000 mil, no siento la fecha.

90
00:06:19,850 --> 00:06:26,130
Está bien la categoría buena nueva categoría, la que creamos acá, la que insertamos acá con su nuevo

91
00:06:26,130 --> 00:06:31,010
Heidy, importante, no categoría y categoría y guardamos producto, pero faltaría otra cosa más.

92
00:06:31,580 --> 00:06:35,060
Voy a dar un salto para separar categoría.

93
00:06:35,270 --> 00:06:42,980
Vamos a colocar acá producto puntos set ese cabo para simular el error y haga el rollback y en realidad

94
00:06:43,040 --> 00:06:45,440
no inserta la categoría ni tampoco el producto.

95
00:06:45,530 --> 00:06:50,030
Bueno, porque en realidad la categoría se debiese insertar bien, porque no tenemos ningún problema,

96
00:06:50,180 --> 00:06:54,500
ningún error, pero si repetimos el ese cabo por uno que cita va a ser el rollback.

97
00:06:54,620 --> 00:06:58,010
La categoría tampoco se va a aceptar y por supuesto el producto menos.

98
00:06:58,100 --> 00:06:59,180
Y eso es lo que queremos probar.

99
00:06:59,330 --> 00:07:03,740
Entonces vamos a ir a la base auto y acá vamos a copiar un estacado que exista.

100
00:07:07,050 --> 00:07:08,300
Deseada sea cierto.

101
00:07:08,360 --> 00:07:13,490
Nos vamos a ir a productos, recuerden categoría lo tenemos acá seleccionar todos tenemos deporte,

102
00:07:13,490 --> 00:07:17,510
tecnología, computación debería crear la 4 que es electr hogar.

103
00:07:18,810 --> 00:07:22,080
Entonces acá ver en productos y acá tenemos.

104
00:07:22,200 --> 00:07:24,810
Bueno, copiamos cualquiera, por ejemplo este de acá.

105
00:07:25,200 --> 00:07:27,150
Doble click o lo seleccionamos.

106
00:07:27,390 --> 00:07:29,400
Control C Volvemos al código.

107
00:07:31,190 --> 00:07:33,190
Lo pegamos, vejan, va a dar error.

108
00:07:33,560 --> 00:07:38,690
Incluso también para que visualicemos el Heidy o el último Heidy creado, lo podríamos concatenar acá

109
00:07:38,780 --> 00:07:41,360
en el mensaje, pero todo guardado con éxito.

110
00:07:41,660 --> 00:07:44,060
Acá 2.y un espacio más.

111
00:07:44,240 --> 00:07:44,750
Producto.

112
00:07:44,750 --> 00:07:46,030
Punto inquietante.

113
00:07:47,000 --> 00:07:47,570
Producto.

114
00:07:47,690 --> 00:07:49,700
Punto nyet Heidy.

115
00:07:50,710 --> 00:07:54,970
Recuerden que guardar devuelve el producto acá, pero en realidad.

116
00:07:55,060 --> 00:07:56,770
Igualmente acá estamos pasando una referencia.

117
00:07:56,870 --> 00:07:57,550
Se fijan?

118
00:07:57,640 --> 00:08:00,460
Nos vamos al método guardar un control de acá.

119
00:08:00,490 --> 00:08:02,350
Perdón en guardar control B.

120
00:08:02,680 --> 00:08:03,580
Pero está la interfaz.

121
00:08:03,790 --> 00:08:09,550
En realidad acá en producto, acá pasamos el producto y devolvemos el mismo objeto.

122
00:08:09,760 --> 00:08:12,670
Se fijan, devolvemos el producto modificado.

123
00:08:13,130 --> 00:08:18,730
Entonces, como se pasa por referencia va a contener el Heidy ya que se le asignamos acá y lo va a mostrar.

124
00:08:20,800 --> 00:08:26,350
Volvemos, aunque también se lo podríamos asignar acá, por ejemplo, producto igual a esto también,

125
00:08:26,860 --> 00:08:28,000
pero daría la misma.

126
00:08:28,150 --> 00:08:33,730
Íbamos a copiar esto tal cual copiar y lo pegamos acá en el guardar.

127
00:08:33,790 --> 00:08:42,460
Pero de la categoría acá sería categoría o nueva categoría, nueva categoría a punto en que Leidy perfecto.

128
00:08:42,760 --> 00:08:48,310
Y por acá sería categoría guardada con éxito.

129
00:08:50,900 --> 00:08:52,880
Guardada con éxito, está molesto.

130
00:08:53,120 --> 00:08:55,850
Levantemos contra el chip F10, vamos a pasar.

131
00:09:02,050 --> 00:09:02,800
Lanza al error.

132
00:09:02,920 --> 00:09:04,480
Así que hasta momento está bien.

133
00:09:05,260 --> 00:09:06,190
Veamos de qué se trata.

134
00:09:06,430 --> 00:09:07,100
Estás duplicado.

135
00:09:07,150 --> 00:09:07,760
Perfecto.

136
00:09:08,020 --> 00:09:09,190
Eso es lo que quería probar.

137
00:09:09,550 --> 00:09:15,130
Entonces solamente muestra hasta el producto teclado y BM mecánico, que fue lo último que vimos.

138
00:09:15,230 --> 00:09:18,550
Y por supuesto que la categoría no la debería de haber insertado.

139
00:09:18,610 --> 00:09:19,420
Vamos a revisar.

140
00:09:19,540 --> 00:09:20,200
Nos vamos acá.

141
00:09:20,260 --> 00:09:24,460
Vamos a ir a categoría y hacemos acá un execute de Bejan.

142
00:09:24,610 --> 00:09:25,390
No pasa nada.

143
00:09:25,600 --> 00:09:29,200
No le insertó producto, menos todavía porque dio el error.

144
00:09:30,750 --> 00:09:37,950
Así que está bien, ahora como falló hizo un rollback actualmente Leidy está en 4, no cierto porque

145
00:09:38,040 --> 00:09:43,440
trató de crear la categoría, quedó en el Heidy 4, se hizo un rollback y se eliminó, por lo tanto

146
00:09:43,440 --> 00:09:47,520
la próxima categoría debiese estar en el Heidy 5 y no en el 4.

147
00:09:48,000 --> 00:09:54,900
Veamos entonces ahora sí que si vamos a crear o vamos a asignar en realidad acá alguno que no exista.

148
00:09:55,350 --> 00:09:57,240
Entonces uno, dos, tres.

149
00:09:57,390 --> 00:09:58,590
Y acá F.

150
00:09:58,650 --> 00:09:58,990
G.

151
00:09:59,310 --> 00:10:00,300
Recuerden que son tías.

152
00:10:00,600 --> 00:10:05,670
Acá tenemos cinco, seis, siete, ocho, nueve, diez.

153
00:10:05,760 --> 00:10:06,330
Perfecto.

154
00:10:06,540 --> 00:10:09,060
Ahora sí que debería crear bien el producto.

155
00:10:09,150 --> 00:10:12,240
Bueno, primero la categoría y luego el producto con la relación.

156
00:10:12,330 --> 00:10:12,840
Vamos a ver.

157
00:10:13,050 --> 00:10:14,400
Control Chef F10.

158
00:10:17,110 --> 00:10:18,430
Ahora si ningún error.

159
00:10:18,460 --> 00:10:19,360
Todo perfecto.

160
00:10:19,630 --> 00:10:22,630
Primero Lyta te fijas cuando crea la categoría?

161
00:10:22,720 --> 00:10:24,280
O antes de crear el producto?

162
00:10:24,340 --> 00:10:27,340
Lyta Acá los productos, acá tenemos.

163
00:10:27,550 --> 00:10:34,690
Bueno, categoría guardada con éxito se fijan hoy día 5 Bien lo creó con el Edy 5, así que ya obtuvimos

164
00:10:34,780 --> 00:10:35,620
el último ití.

165
00:10:36,340 --> 00:10:39,910
Luego lyta los productos hasta el 10 nomás.

166
00:10:40,390 --> 00:10:48,880
Luego por ahí di el 1 producto Guardá con éxito 12 se fijan muestra el último y10 y Calita el 12 refrigerador

167
00:10:48,880 --> 00:10:51,280
Samsung Electro hogar con la nueva categoría.

168
00:10:51,400 --> 00:11:01,480
Vamos a revisar hacemos execute 5 Electro hogar nos vamos a pro-ducto éxico out 12 y por acá categoría

169
00:11:01,900 --> 00:11:09,970
5 recuerden 5 apunta a electro hogar y como tenemos una consulta con Yeung, acá muestra electro hogar.

170
00:11:10,120 --> 00:11:13,600
Refrigerar son electro hogar, así que está perfecto para que sea un poco más simple.

171
00:11:13,630 --> 00:11:18,010
Lo hice en el método Main directamente, pero a partir de la siguiente clase ya vamos a trabajar con

172
00:11:18,010 --> 00:11:20,710
la clase servis y llevar toda esta lógica negocio.

173
00:11:20,890 --> 00:11:25,690
Desacoplar todo lo que sean datos, lógica, negocio, traja con repositorio, con transacciones.

174
00:11:25,720 --> 00:11:27,540
Todo eso se lleva a una clase servis.

175
00:11:27,610 --> 00:11:31,240
De esa forma queda mucho más limpio nuestro controlador o nuestra clase.

176
00:11:31,240 --> 00:11:35,140
Con el método Main lo dejamos hasta acá y continuamos en la siguiente clase.
