1 00:00:02,419 --> 00:00:16,920 Vale. A ver, aquí aparte de indicar cómo construir los bins que Spring va a necesitar, que estas cosas, repito, en mi caso y en el de la gama de los humanos son copias y pegas, lógicamente. 2 00:00:16,920 --> 00:00:30,019 Yo voy ahí mirando, cotilleando, solucionando y ¿qué funciona? Pues ahí lo dejo. Pero podréis ver más formas de construir estos bins, lógicamente. ¿Vale? Más formas. Esto es lo que yo voy copieteando por ahí. Vale. 3 00:00:32,420 --> 00:00:35,219 Hay que decirle a Spring 4 00:00:35,219 --> 00:00:36,619 Que es un fichero de configuración 5 00:00:36,619 --> 00:00:38,740 Claro, vale, pues venga 6 00:00:38,740 --> 00:00:40,159 Es un fichero de configuración 7 00:00:40,159 --> 00:00:41,759 ¿Vale? 8 00:00:42,179 --> 00:00:43,719 También hay que decirle a Spring 9 00:00:43,719 --> 00:00:45,979 Que puede que haya más bins 10 00:00:45,979 --> 00:00:48,439 Que los que hay aquí 11 00:00:48,439 --> 00:00:50,340 Puede que los haya, búscalos 12 00:00:50,340 --> 00:00:52,560 En este caso los hay, el repositorio y el service 13 00:00:52,560 --> 00:00:54,600 Pues entonces hay que decirle 14 00:00:54,600 --> 00:00:56,340 A partir de qué 15 00:00:56,340 --> 00:00:58,240 Punto del árbol de paquetes 16 00:00:58,240 --> 00:00:59,539 Tiene que empezar a buscarlos 17 00:00:59,539 --> 00:01:01,619 Oye, búscalos a partir de este 18 00:01:01,619 --> 00:01:05,000 vale, esta anotación 19 00:01:05,000 --> 00:01:06,640 es 20 00:01:06,640 --> 00:01:08,400 para que él infiera 21 00:01:08,400 --> 00:01:10,659 para que él infiera 22 00:01:10,659 --> 00:01:12,640 la de repository 23 00:01:12,640 --> 00:01:14,480 de aquí, vale 24 00:01:14,480 --> 00:01:16,120 si la quitamos 25 00:01:16,120 --> 00:01:19,219 no va a 26 00:01:19,219 --> 00:01:20,680 inferirla y no va a 27 00:01:20,680 --> 00:01:22,480 funcionar, va a decir, no consigo 28 00:01:22,480 --> 00:01:24,700 el binrepositorio, me falta 29 00:01:24,700 --> 00:01:27,060 ¿dónde está? no me has dicho que lo maneje 30 00:01:27,060 --> 00:01:28,659 vale, pues poniendo esta 31 00:01:28,659 --> 00:01:29,319 anotación 32 00:01:29,319 --> 00:01:33,760 Spring ya extrae de aquí 33 00:01:33,760 --> 00:01:35,959 Que esto es un bin repositorio 34 00:01:35,959 --> 00:01:37,200 Que tiene que gestionar él 35 00:01:37,200 --> 00:01:40,599 Y esto es para que funcionen 36 00:01:40,599 --> 00:01:42,079 Las anotaciones transaccionales 37 00:01:42,079 --> 00:01:42,420 Ya está 38 00:01:42,420 --> 00:01:46,260 Con toda la implicación que tienen las transaccionales 39 00:01:46,260 --> 00:01:46,500 ¿Vale? 40 00:01:47,379 --> 00:01:49,739 Que es que todo ese método en transacción 41 00:01:49,739 --> 00:01:52,099 Rollback si no funciona 42 00:01:52,099 --> 00:01:55,159 Contexto de persistencia abierto todo el rato 43 00:01:55,159 --> 00:01:56,200 Si no está abierto 44 00:01:56,200 --> 00:01:58,980 Tenemos problemas con las cargas 45 00:01:58,980 --> 00:02:00,719 Lazy, etc 46 00:02:00,719 --> 00:02:02,719 Vale, pues entonces 47 00:02:02,719 --> 00:02:04,739 Ahora ya con este fichero de configuración 48 00:02:04,739 --> 00:02:06,980 Ya podemos hacer un main rápido 49 00:02:06,980 --> 00:02:08,539 Que ya 50 00:02:08,539 --> 00:02:10,599 Será nuestro último proyecto 51 00:02:10,599 --> 00:02:12,780 Espero en 52 00:02:12,780 --> 00:02:14,580 Arquitectura esta, porque como ya 53 00:02:14,580 --> 00:02:16,280 Más o menos controlamos 54 00:02:16,280 --> 00:02:18,020 Más o menos 55 00:02:18,020 --> 00:02:20,560 Ya podemos cambiar arquitectura 56 00:02:20,560 --> 00:02:22,860 O bien a esa web que os gustó tanto al principio 57 00:02:22,860 --> 00:02:24,400 A un API REST, me da lo mismo 58 00:02:24,400 --> 00:02:26,439 son controller igualmente, me da igual 59 00:02:26,439 --> 00:02:28,599 que te consulte una máquina, que te consulte una web 60 00:02:28,599 --> 00:02:30,580 a ver, no me da igual, cuando te consulta 61 00:02:30,580 --> 00:02:32,699 una web tienes que construir toda la vista, que es un rollo 62 00:02:32,699 --> 00:02:34,520 si es una p-res no construyes 63 00:02:34,520 --> 00:02:36,340 vista, das el boom en el objeto 64 00:02:36,340 --> 00:02:37,300 y es más fácil 65 00:02:37,300 --> 00:02:40,500 bueno, pues 66 00:02:40,500 --> 00:02:41,879 entonces ahora ya podemos hacernos 67 00:02:41,879 --> 00:02:44,360 nuestro main, a ver si hemos montado bien 68 00:02:44,360 --> 00:02:45,879 la arquitectura correctamente 69 00:02:45,879 --> 00:02:47,699 vamos a sacar 70 00:02:47,699 --> 00:02:49,080 el contexto 71 00:02:49,080 --> 00:02:51,919 de sprint 72 00:02:51,919 --> 00:02:54,860 Y ahora ya el contexto de Spring 73 00:02:54,860 --> 00:02:56,039 Me saca mi bin raíz 74 00:02:56,039 --> 00:02:58,180 El service 75 00:02:58,180 --> 00:02:59,900 Y ahora ya con el service yo hago todo 76 00:02:59,900 --> 00:03:03,979 Todavía estamos haciendo algo a mano 77 00:03:03,979 --> 00:03:06,199 Porque no tenemos Spring Boot 78 00:03:06,199 --> 00:03:07,479 ¿Vale? Recordad que 79 00:03:07,479 --> 00:03:09,620 Que ya lo incorporaremos 80 00:03:09,620 --> 00:03:11,479 Que con Spring Boot 81 00:03:11,479 --> 00:03:14,539 Spring Boot ya deduce todo esto 82 00:03:14,539 --> 00:03:16,240 Este fichero ya no está 83 00:03:16,240 --> 00:03:17,960 Porque lo deduce 84 00:03:17,960 --> 00:03:20,300 Y ya que yo sepa no hay más nivel 85 00:03:20,300 --> 00:03:22,460 De ocultación, ya es imposible ocultar 86 00:03:22,460 --> 00:03:24,219 más que lo que oculta Spring Boot. 87 00:03:24,340 --> 00:03:26,020 Así que ya más capas no vamos a poner, Ana. 88 00:03:26,039 --> 00:03:27,639 Después de tres meses de capas 89 00:03:27,639 --> 00:03:29,680 hemos llegado a la capa final. 90 00:03:29,900 --> 00:03:32,560 Sí, pero tienes un conocimiento muy sólido 91 00:03:32,560 --> 00:03:34,479 de base. Y has entrenado 92 00:03:34,479 --> 00:03:35,539 bastante bien el cerebro. 93 00:03:38,180 --> 00:03:38,979 Pero ahí estás. 94 00:03:39,599 --> 00:03:42,219 Cuando tengas que tirar de ello, sobre todo cuando tenés un proyecto 95 00:03:42,219 --> 00:03:43,659 y tengas que interpretarlo, 96 00:03:44,219 --> 00:03:46,560 ese conocimiento está ahí. 97 00:03:46,960 --> 00:03:48,759 Pero que ahora no sé cuál capa es cuál. 98 00:03:49,240 --> 00:03:50,020 No, hombre, si lo sabes. 99 00:03:50,719 --> 00:03:52,000 Pero si es que están clavadas. 100 00:03:52,460 --> 00:04:01,340 jd bc iber jd bc hibernate jp a brindar a sprint sprint 101 00:04:12,020 --> 00:04:21,199 jd bc hibernate jp a esas tres seguidas sprint 102 00:04:21,199 --> 00:04:24,779 en particular Spring Data JPA 103 00:04:24,779 --> 00:04:26,680 más el Spring Core que te gestiona 104 00:04:26,680 --> 00:04:28,660 Luzbin, Spring Boot 105 00:04:28,660 --> 00:04:30,680 más que capa, pues una ayudita 106 00:04:30,680 --> 00:04:32,699 para quitarte la configuración 107 00:04:32,699 --> 00:04:34,699 y ya está, y luego ya todo 108 00:04:34,699 --> 00:04:36,480 eso lo metes en la arquitectura que te dé la gana 109 00:04:36,480 --> 00:04:38,620 vale, que sí, que uno puede meter más 110 00:04:38,620 --> 00:04:40,939 capas, pues si quiere que sea reactivo 111 00:04:40,939 --> 00:04:42,540 si quiere que sea no sé qué, Aitor tiene 112 00:04:42,540 --> 00:04:44,100 mogollón de capas, ah bueno, un Docker 113 00:04:44,100 --> 00:04:46,540 vale, que todo eso lo quieres 114 00:04:46,540 --> 00:04:48,740 meter en un contenedor Docker para no tener 115 00:04:48,740 --> 00:04:50,199 pues, ah un Docker 116 00:04:50,199 --> 00:04:53,040 Vale, que los tienes 117 00:04:53,040 --> 00:04:54,920 Un Docker que lo quieres gestionar por 118 00:04:54,920 --> 00:04:57,019 Kubernetes, que tiene un montón de 119 00:04:57,019 --> 00:04:58,660 Pues Kubernetes por encima 120 00:04:58,660 --> 00:04:59,720 Pero bueno 121 00:04:59,720 --> 00:05:02,759 Vamos a dejarlo 122 00:05:02,759 --> 00:05:04,620 Imagino que ya te has traído, te pulsas 123 00:05:04,620 --> 00:05:06,300 A y te hace lo que quieras 124 00:05:06,300 --> 00:05:08,879 No sé yo, eh 125 00:05:08,879 --> 00:05:10,439 A ver, no lo sé, yo no he conseguido 126 00:05:10,439 --> 00:05:12,379 Que pulsara A y que haga lo que quieras 127 00:05:12,379 --> 00:05:13,579 Pero bueno 128 00:05:13,579 --> 00:05:18,110 Vale, pero ahora 129 00:05:18,110 --> 00:05:19,689 Vosotros podéis 130 00:05:19,689 --> 00:05:22,290 si trabajáis en Java 131 00:05:22,290 --> 00:05:23,910 que Dios lo quiera 132 00:05:23,910 --> 00:05:26,269 que Dios lo quiera 133 00:05:26,269 --> 00:05:27,730 porque vais a ser los mejores 134 00:05:27,730 --> 00:05:30,089 porque ya con todo el esfuerzo que habéis hecho 135 00:05:30,089 --> 00:05:32,529 que has aportado para tus cartas en Java 136 00:05:32,529 --> 00:05:33,990 si, si, somos políglotas 137 00:05:33,990 --> 00:05:35,470 es lo mío que sé 138 00:05:35,470 --> 00:05:38,050 y ni eso, ni eso sé 139 00:05:38,050 --> 00:05:40,490 así que imagínate, bueno pues no, más que eso 140 00:05:40,490 --> 00:05:42,589 con todo el esfuerzo que habéis hecho en Java 141 00:05:42,589 --> 00:05:43,990 pues Dios quiera 142 00:05:43,990 --> 00:05:45,730 que trabajéis en Java un rato 143 00:05:45,730 --> 00:05:48,550 entonces, ¿qué iba a decir? 144 00:05:48,550 --> 00:05:53,029 Hay mucha 145 00:05:53,029 --> 00:05:54,449 Todavía hay bastante gente 146 00:05:54,449 --> 00:05:56,529 Trabajando con el ecosistema Java 147 00:05:56,529 --> 00:05:57,329 En todas sus variantes 148 00:05:57,329 --> 00:06:01,490 El 30% 149 00:06:01,490 --> 00:06:02,649 Pues fijaos 150 00:06:02,649 --> 00:06:03,490 Todas para vosotros 151 00:06:03,490 --> 00:06:06,430 Pues 152 00:06:06,430 --> 00:06:08,750 Trabajando en Java 153 00:06:08,750 --> 00:06:10,709 Veréis proyectos hechos 154 00:06:10,709 --> 00:06:11,990 De muchas maneras 155 00:06:11,990 --> 00:06:15,149 Bien, mal, desastre, maravillosos 156 00:06:15,149 --> 00:06:16,670 Algunos no entenderéis ni patata 157 00:06:16,670 --> 00:06:17,449 Pero no pasa nada 158 00:06:17,449 --> 00:06:18,790 la semana ya lo entenderéis todo 159 00:06:18,790 --> 00:06:21,370 alguno diréis, pero que mal trabajan aquí 160 00:06:21,370 --> 00:06:23,649 vaya mierda, menos mal que he llegado yo para arreglarlo 161 00:06:23,649 --> 00:06:24,709 todo, de todo 162 00:06:24,709 --> 00:06:27,089 de Spring Boot ya es 163 00:06:27,089 --> 00:06:29,250 a ver, puedes poner un Docker para que te gestione ya 164 00:06:29,250 --> 00:06:31,449 ¿vale? meterlo todo en un Docker 165 00:06:31,449 --> 00:06:33,430 y encima de Docker el sistema operativo de 166 00:06:33,430 --> 00:06:34,310 Docker, Kubernetes 167 00:06:34,310 --> 00:06:36,889 y encima de Kubernetes 168 00:06:36,889 --> 00:06:39,370 el robot que te lo hace todo 169 00:06:39,370 --> 00:06:40,189 ¿no? 170 00:06:40,189 --> 00:06:41,329 y encima 171 00:06:41,329 --> 00:06:43,550 del robot, el humano 172 00:06:43,550 --> 00:06:51,250 Bueno, el usuario 173 00:06:51,250 --> 00:06:52,470 Aquí ya ni pinta nada 174 00:06:52,470 --> 00:06:54,810 Todo esto se hace para usuarios que luego ni existen 175 00:06:54,810 --> 00:06:55,350 Pero bueno 176 00:06:55,350 --> 00:06:57,550 Vale, pues ahora ya 177 00:06:57,550 --> 00:07:02,930 Vale, pues venga, vamos a 178 00:07:02,930 --> 00:07:06,930 Uf, pues me temo que sí 179 00:07:06,930 --> 00:07:08,290 O sea, se ha grabado todo este speech 180 00:07:08,290 --> 00:07:10,850 Se ha grabado todo el speech 181 00:07:10,850 --> 00:07:13,250 En fin, pues ahora ya sí que podemos 182 00:07:13,250 --> 00:07:15,569 vamos a probar a ver si la arquitectura 183 00:07:15,569 --> 00:07:17,430 funciona y a partir de ahí ya podremos meter más 184 00:07:17,430 --> 00:07:17,850 cositas 185 00:07:17,850 --> 00:07:21,769 vale, pues a ver, service 186 00:07:21,769 --> 00:07:23,350 teníamos solamente un servicio 187 00:07:23,350 --> 00:07:24,129 que es 188 00:07:24,129 --> 00:07:26,829 recupera cliente por id 189 00:07:26,829 --> 00:07:28,850 coged un cliente del que tengáis id 190 00:07:28,850 --> 00:07:33,189 un cliente del que tengáis id 191 00:07:33,189 --> 00:07:34,110 el 1 192 00:07:34,110 --> 00:07:37,490 cliente 193 00:07:37,490 --> 00:07:37,970 1 194 00:07:37,970 --> 00:07:40,470 ala 195 00:07:40,470 --> 00:07:43,370 voy a ponerle un tuestrín a cliente 196 00:07:43,370 --> 00:07:44,790 que no sé si lo tengo puesto 197 00:07:44,790 --> 00:07:47,389 para que esto 198 00:07:47,389 --> 00:07:49,769 no me muestre algo feo 199 00:07:49,769 --> 00:07:51,490 un segundo, que le pongo el tuestrín 200 00:07:51,490 --> 00:07:51,990 y vuelvo 201 00:07:51,990 --> 00:08:00,019 ¿qué estamos haciendo? pues desde el 202 00:08:00,019 --> 00:08:01,920 main patatero a lo cutre, que esto sí 203 00:08:01,920 --> 00:08:03,740 que es cutre, probar las cosas desde un main 204 00:08:03,740 --> 00:08:05,939 lo reconozco, pero es lo más 205 00:08:05,939 --> 00:08:06,600 cómodo y fácil 206 00:08:06,600 --> 00:08:09,779 pues probar que la arquitectura que hemos hecho de 207 00:08:09,779 --> 00:08:10,540 sprint funcione 208 00:08:10,540 --> 00:08:13,800 vale, entonces, no hemos hecho 209 00:08:13,800 --> 00:08:15,360 nada, o sea, nosotros 210 00:08:15,360 --> 00:08:17,540 programar, es que no hemos programado nada 211 00:08:17,540 --> 00:08:19,779 hemos puesto clases y clases 212 00:08:19,779 --> 00:08:21,860 y clases, millones de 213 00:08:21,860 --> 00:08:23,759 clases, solo para hacer un 214 00:08:23,759 --> 00:08:25,939 seller, cliente 215 00:08:25,939 --> 00:08:27,699 from clientes, web 216 00:08:27,699 --> 00:08:28,920 id, igual a 1 217 00:08:28,920 --> 00:08:31,959 algo que en JDBC habríamos hecho 218 00:08:31,959 --> 00:08:33,919 en una línea perfectamente 219 00:08:33,919 --> 00:08:35,360 controlado, pues hemos hecho aquí 220 00:08:35,360 --> 00:08:37,159 vamos, la leche 221 00:08:37,159 --> 00:08:39,039 solo para hacer esto 222 00:08:39,039 --> 00:08:41,500 yo ahí lo dejo 223 00:08:41,500 --> 00:08:44,200 Para que veáis que 224 00:08:44,200 --> 00:08:47,679 No, yo lo que quiero es que no seáis víctimas 225 00:08:47,679 --> 00:08:48,820 Del tecnooptimismo 226 00:08:48,820 --> 00:08:52,179 Que es el progreso siempre mejora nuestra vida 227 00:08:52,179 --> 00:08:52,919 Pues no 228 00:08:52,919 --> 00:08:55,340 Resistámonos a esa idea también a veces 229 00:08:55,340 --> 00:08:57,759 A veces el decrecimiento 230 00:08:57,759 --> 00:08:58,580 Es la solución 231 00:08:58,580 --> 00:09:01,899 Tú abogas por el decrecimiento 232 00:09:01,899 --> 00:09:02,139 ¿No? 233 00:09:06,779 --> 00:09:07,299 Efectivamente 234 00:09:07,299 --> 00:09:12,080 A ver 235 00:09:12,080 --> 00:09:14,960 Uy, qué suerte 236 00:09:14,960 --> 00:09:19,159 Ala, pues ya está 237 00:09:19,159 --> 00:09:21,120 Todo el rollo para hacer esto 238 00:09:21,120 --> 00:09:26,720 Todo el rollo para hacer esto 239 00:09:26,720 --> 00:09:27,779 Vale 240 00:09:27,779 --> 00:09:29,779 ¿No se ha funcionado a todo el mundo? 241 00:09:30,419 --> 00:09:30,620 No 242 00:09:30,620 --> 00:09:36,509 No se ha funcionado a todo el mundo, ¿no? 243 00:09:42,840 --> 00:09:43,980 El ID 244 00:09:43,980 --> 00:09:46,059 Lo tienes como interior o como long 245 00:09:46,059 --> 00:09:48,580 Como long, por eso yo le he puesto la L 246 00:09:48,580 --> 00:09:51,059 En el entity 247 00:09:51,059 --> 00:09:52,379 Sí, en el 248 00:09:52,379 --> 00:09:54,039 O sea, lo tengo aquí como long 249 00:09:54,039 --> 00:09:55,960 Lo tengo en cliente como long 250 00:09:55,960 --> 00:09:58,419 En mi caso lo tengo como long 251 00:09:58,419 --> 00:09:59,879 Todo el rato, porque estas clases 252 00:09:59,879 --> 00:10:02,220 Se las pedía HGP desde el script 253 00:10:02,220 --> 00:10:03,379 Y como 254 00:10:03,379 --> 00:10:06,340 Estaba como begin, lo puso como long 255 00:10:06,340 --> 00:10:12,240 Vale 256 00:10:12,240 --> 00:10:13,980 ¿Dónde estaba yo aquí en el main? 257 00:10:15,460 --> 00:10:15,779 ¡Hala! 258 00:10:16,759 --> 00:10:18,799 Pues ya está, y con esto ya podríamos tirar 259 00:10:18,799 --> 00:10:20,820 Y hacer un proyecto hiper mega 260 00:10:20,820 --> 00:10:23,080 maravilloso que hiciera millones de cosas 261 00:10:23,080 --> 00:10:24,519 con mis clientes y mis pedidos 262 00:10:24,519 --> 00:10:26,720 ¿Vale? 263 00:10:39,669 --> 00:10:40,470 A ver 264 00:10:40,470 --> 00:10:43,759 Vamos a hacer una cosa 265 00:10:43,759 --> 00:10:50,059 ¿Cómo? A ver, te hace un create table 266 00:10:50,059 --> 00:10:51,759 si tienes aquí 267 00:10:51,759 --> 00:10:53,740 create en esta propiedad 268 00:10:53,740 --> 00:10:57,340 ¿Dónde estamos aquí? 269 00:11:00,129 --> 00:11:01,509 O si no tienes la base 270 00:11:01,509 --> 00:11:02,870 de datos 271 00:11:02,870 --> 00:11:06,929 Te crea la tabla otra vez 272 00:11:06,929 --> 00:11:09,049 Teniéndola ya 273 00:11:09,049 --> 00:11:14,129 Pero has puesto aquí el nombre de la base de datos 274 00:11:14,129 --> 00:11:15,470 Bueno, me has cambiado al tuyo 275 00:11:15,470 --> 00:11:17,009 A ver si has dejado el mío 276 00:11:17,009 --> 00:11:17,730 Yo que sé 277 00:11:17,730 --> 00:11:20,669 Yo también tengo el mío 278 00:11:20,669 --> 00:11:22,750 Y a mí me hace drop table, drop pivot 279 00:11:22,750 --> 00:11:24,009 Y luego hace un create 280 00:11:24,009 --> 00:11:27,330 Y 281 00:11:27,330 --> 00:11:31,289 Pues con aquí en UPDATE 282 00:11:31,289 --> 00:11:33,610 Solo si cambia el esquema 283 00:11:33,610 --> 00:11:35,990 Si no cambia el esquema no debería tirar la basura 284 00:11:35,990 --> 00:11:37,769 A lo mejor habéis cambiado alguna 285 00:11:37,769 --> 00:11:39,929 Propiedad, alguna cosa que hace 286 00:11:39,929 --> 00:11:41,409 Que él vea que es diferente 287 00:11:41,409 --> 00:11:42,429 El modelo de la 288 00:11:42,429 --> 00:11:45,029 Es que por defecto ponía create 289 00:11:45,029 --> 00:11:47,570 En tu caso 290 00:11:47,570 --> 00:11:48,330 No lo creo 291 00:11:48,330 --> 00:11:52,350 Tú tienes ubdate a palo seco 292 00:11:52,350 --> 00:11:54,149 No tienes ubdate create 293 00:11:54,149 --> 00:11:55,029 Ni nada de eso 294 00:11:55,029 --> 00:12:01,009 Bueno pues 295 00:12:01,009 --> 00:12:03,230 ¿Tenías creado? Vale, vale 296 00:12:03,230 --> 00:12:04,769 Entonces vamos a hacer una cosa 297 00:12:04,769 --> 00:12:06,809 Voy a guardar el cliente aquí 298 00:12:06,809 --> 00:12:24,440 ¿De qué? 299 00:12:24,720 --> 00:12:26,259 Este proyecto entero lo voy a subir ahora 300 00:12:26,259 --> 00:12:28,419 Pero ahora mismo, ¿te refieres? 301 00:12:28,419 --> 00:12:30,720 De la tabla, porque como nos la ha borrado 302 00:12:30,720 --> 00:12:32,580 Las tablas y las ha vuelto a crear 303 00:12:32,580 --> 00:12:33,440 No hay datos ni nada 304 00:12:33,440 --> 00:12:37,179 mete tú cualquiera rápidamente aquí 305 00:12:37,179 --> 00:12:39,519 te metes unos, es mucho más rápido que ejecutar 306 00:12:39,519 --> 00:12:41,399 un script, mete los que te den la gana 307 00:12:41,399 --> 00:12:42,860 ahí, metes dos o tres 308 00:12:42,860 --> 00:12:45,279 para probar y ya está, vale, entonces 309 00:12:45,279 --> 00:12:46,120 estaba yo aquí 310 00:12:46,120 --> 00:13:01,360 que por qué queremos que nos dé error 311 00:13:01,360 --> 00:13:09,460 para que nos acordemos de esto 312 00:13:09,460 --> 00:13:10,200 vale 313 00:13:10,200 --> 00:13:14,200 porque, vale 314 00:13:14,200 --> 00:13:16,059 aquí 315 00:13:16,059 --> 00:13:23,620 Y es donde, es uno, donde vemos que hibernate no nos lo pone tan fácil. 316 00:13:23,620 --> 00:13:31,820 Porque yo quiero mi cliente, recupero cliente con el método que me ofrece el repositorio. 317 00:13:31,879 --> 00:13:33,779 Es que no los he hecho yo, yo no los he hecho. 318 00:13:34,820 --> 00:13:39,840 Entonces, si yo quiero que me hagan las cosas, pues tengo que aceptar sus reglas. 319 00:13:40,600 --> 00:13:42,700 Y sus reglas son, dime. 320 00:13:42,700 --> 00:13:51,419 Porque no tendrás puesto aquí 321 00:13:51,419 --> 00:13:52,960 Create, en vez de Udate 322 00:13:52,960 --> 00:13:57,480 Cuando dices 323 00:13:57,480 --> 00:13:59,960 Me dropea, querías decir me elimina 324 00:13:59,960 --> 00:14:03,500 Vale, porque es que 325 00:14:03,500 --> 00:14:04,600 Dropear ya te vale 326 00:14:04,600 --> 00:14:09,480 Vale 327 00:14:09,480 --> 00:14:13,240 Igual teníais 328 00:14:13,240 --> 00:14:15,360 Create, porque cuando yo subí esto 329 00:14:15,360 --> 00:14:16,460 Lo tenía como create 330 00:14:16,460 --> 00:14:18,980 Claro, y lo cambié luego después 331 00:14:18,980 --> 00:14:19,559 A lo mejor 332 00:14:19,559 --> 00:14:22,539 Vale, vale 333 00:14:22,539 --> 00:14:28,379 Pues puede ser 334 00:14:28,379 --> 00:14:32,940 Vale, pues lógicamente esto 335 00:14:32,940 --> 00:14:35,080 Como bien habéis intuido 336 00:14:35,080 --> 00:14:35,799 Algunos 337 00:14:35,799 --> 00:14:39,220 A que esto era una excepción como la ropa de un pino 338 00:14:39,220 --> 00:14:40,179 ¿Verdad? 339 00:14:41,000 --> 00:14:42,399 Porque esto ya no lo sabemos de memoria 340 00:14:42,399 --> 00:14:45,000 El cliente se ha recuperado 341 00:14:45,000 --> 00:14:46,159 Sin sus pedidos 342 00:14:46,159 --> 00:14:48,000 Porque aquí tenemos esto 343 00:14:48,000 --> 00:14:52,419 Que, ¿dónde está? 344 00:14:52,740 --> 00:14:53,980 Ah, concha, aquí está 345 00:14:53,980 --> 00:14:55,340 Aquí tenemos esto 346 00:14:55,340 --> 00:14:57,840 Entonces en el servicio no tenemos que ejecutar todos los pedidos 347 00:14:57,840 --> 00:15:01,879 Claro, pero entonces 348 00:15:01,879 --> 00:15:06,820 ¿Cómo arreglamos esto? 349 00:15:07,019 --> 00:15:09,100 Pues uno diría, ay, pues no pasa nada 350 00:15:09,100 --> 00:15:11,779 Pongo aquí el Iger, pero hombre, esa no es la solución 351 00:15:11,779 --> 00:15:12,539 Poner el Iger 352 00:15:12,539 --> 00:15:15,220 Entonces aquí el problema, ya sabemos cuál ha sido 353 00:15:15,220 --> 00:15:17,620 Que el servicio 354 00:15:17,620 --> 00:15:18,580 este de aquí 355 00:15:18,580 --> 00:15:21,460 tira de find by id 356 00:15:21,460 --> 00:15:22,879 que no lo he hecho yo 357 00:15:22,879 --> 00:15:24,460 y find by id 358 00:15:24,460 --> 00:15:27,179 te lo coge y te coge 359 00:15:27,179 --> 00:15:29,480 abre el 360 00:15:29,480 --> 00:15:31,879 contexto de persistencia, te coge el cliente 361 00:15:31,879 --> 00:15:33,019 y lo 362 00:15:33,019 --> 00:15:35,799 y lo cierra el contexto de persistencia 363 00:15:35,799 --> 00:15:37,840 y no puedo elegir 364 00:15:37,840 --> 00:15:39,500 yo que haga, que funcione 365 00:15:39,500 --> 00:15:41,100 de otra manera, ¿vale? 366 00:15:41,139 --> 00:15:43,679 primer problema de Spring, yo aquí no elijo 367 00:15:43,679 --> 00:15:45,559 el contexto de persistencia cuando está vivo 368 00:15:45,559 --> 00:15:46,940 no lo puedo elegir, es imposible 369 00:15:46,940 --> 00:15:49,879 entonces como no lo puedo elegir porque es imposible 370 00:15:49,879 --> 00:15:51,779 pues estoy 371 00:15:51,779 --> 00:15:54,120 condenada para la eternidad 372 00:15:54,120 --> 00:15:56,019 a este lazy exception 373 00:15:56,019 --> 00:15:58,220 a menos que decida 374 00:15:58,220 --> 00:15:59,700 pasar de este método 375 00:15:59,700 --> 00:16:01,940 ¿vale? a menos que decida pasar 376 00:16:01,940 --> 00:16:03,899 de este, porque este no me vale 377 00:16:03,899 --> 00:16:05,480 entonces 378 00:16:05,480 --> 00:16:08,120 ¿habría algún método que me ofrezca 379 00:16:08,120 --> 00:16:09,960 el repositorio que me lo recoja 380 00:16:09,960 --> 00:16:11,059 con sus pedidos? 381 00:16:11,940 --> 00:16:13,559 pues seguramente no, si no lo hay 382 00:16:13,559 --> 00:16:14,500 pues estoy jodida 383 00:16:14,500 --> 00:16:16,740 Vamos a ver 384 00:16:16,740 --> 00:16:19,220 ¿Qué métodos me ofrece? 385 00:16:21,779 --> 00:16:22,340 Define 386 00:16:22,340 --> 00:16:24,500 Pues define 387 00:16:24,500 --> 00:16:26,460 Find, all, find, nada 388 00:16:26,460 --> 00:16:27,820 Find, all, find 389 00:16:27,820 --> 00:16:30,440 All by the, find by the 390 00:16:30,440 --> 00:16:30,960 Find 391 00:16:30,960 --> 00:16:32,559 Nada 392 00:16:32,559 --> 00:16:35,080 No puedo hacer nada 393 00:16:35,080 --> 00:16:39,559 Efectivamente 394 00:16:39,559 --> 00:16:40,720 Pues entonces 395 00:16:40,720 --> 00:16:44,039 Que el repositorio me ofrezca ya muchas cositas 396 00:16:44,039 --> 00:16:45,720 No significa 397 00:16:45,720 --> 00:16:48,279 que no le pueda yo poner las mías propias 398 00:16:48,279 --> 00:16:49,360 ¿vale? 399 00:16:49,620 --> 00:16:51,519 entonces yo, a las que me ofrece él 400 00:16:51,519 --> 00:16:52,799 que es el cruz básico 401 00:16:52,799 --> 00:16:55,159 ¿lo pondrías en el repositorio y no en el service? 402 00:16:57,220 --> 00:16:58,519 no, en el repositorio 403 00:16:58,519 --> 00:17:00,259 métodos de repositorio 404 00:17:00,259 --> 00:17:02,340 porque el service tira del repositorio 405 00:17:02,340 --> 00:17:04,119 entonces lo tengo que poner en el repositorio primero 406 00:17:04,119 --> 00:17:06,079 ¿vale? porque el service 407 00:17:06,079 --> 00:17:07,920 ¿de dónde tira? si es que no tengo 408 00:17:07,920 --> 00:17:10,039 ni JBC, ni tengo DAO, ni tengo nada 409 00:17:10,039 --> 00:17:11,880 es que aquí estoy 410 00:17:11,880 --> 00:17:14,640 muy angustiada 411 00:17:14,640 --> 00:17:15,920 Lo tengo que poner aquí 412 00:17:15,920 --> 00:17:17,920 Pero claro, esto es una interfaz 413 00:17:17,920 --> 00:17:20,700 Entonces, yo no puedo aquí 414 00:17:20,700 --> 00:17:21,940 Implementar un método 415 00:17:21,940 --> 00:17:24,859 ¿Vale? Pero no pasa nada 416 00:17:24,859 --> 00:17:27,740 Es que Spring es tan listo 417 00:17:27,740 --> 00:17:29,180 Que del propio nombre 418 00:17:29,180 --> 00:17:29,940 Del método 419 00:17:29,940 --> 00:17:32,819 Él ya infiere un montón de cosas y se lo inventa 420 00:17:32,819 --> 00:17:34,279 ¿Vale? 421 00:17:34,640 --> 00:17:36,200 O bien lo infiere del nombre 422 00:17:36,200 --> 00:17:38,460 O si del nombre no se puede inferir 423 00:17:38,460 --> 00:17:39,579 Porque es demasiado complicado 424 00:17:39,579 --> 00:17:41,160 Le pongo yo una query al lado 425 00:17:41,160 --> 00:17:43,079 Y le digo, oye, este método es esta query 426 00:17:43,079 --> 00:17:46,920 Le pongo una query jpql y tan listo, ¿vale? 427 00:17:46,940 --> 00:17:50,700 Por ejemplo, vamos a hacer métodos propios para este de 428 00:17:50,700 --> 00:17:50,900 aquí. 429 00:17:51,660 --> 00:17:54,700 Vamos a suponer que quisiéramos, ¿vale? 430 00:17:54,700 --> 00:17:56,480 Vamos a ponerle aquí métodos propios. 431 00:18:01,029 --> 00:18:03,569 Métodos propios. 432 00:18:04,529 --> 00:18:07,890 Vamos a hacer métodos propios para el repository, ¿vale? 433 00:18:07,930 --> 00:18:09,930 Entre ellos, uno que nos va a interesar, pues, 434 00:18:10,029 --> 00:18:11,789 es recuperar con pedidos, por ejemplo. 435 00:18:11,789 --> 00:18:13,410 Vale, pero hay más 436 00:18:13,410 --> 00:18:14,589 Hay como 437 00:18:14,589 --> 00:18:16,230 5 millones 438 00:18:16,230 --> 00:18:20,009 Hombre, métodos propios tantos como imaginación tengas tú 439 00:18:20,009 --> 00:18:21,829 Pero casuísticas 440 00:18:21,829 --> 00:18:23,410 Una casuística muy típica 441 00:18:23,410 --> 00:18:25,470 Que es, vamos a recuperar por otra cosa 442 00:18:25,470 --> 00:18:26,970 Que no sea el ID, por otro campo 443 00:18:26,970 --> 00:18:28,950 Eso es algo que normalmente queremos hacer 444 00:18:28,950 --> 00:18:31,670 Pues eso, afortunadamente, Sprint 445 00:18:31,670 --> 00:18:33,650 Me permite expresárselo 446 00:18:33,650 --> 00:18:34,650 Con el nombre del método 447 00:18:34,650 --> 00:18:36,750 Y ya no tengo que hacer query, yo ni tengo que hacer nada 448 00:18:36,750 --> 00:18:37,450 Con el nombre del método 449 00:18:37,450 --> 00:18:40,470 Entonces, por ejemplo, vamos a recuperar clientes por nombre 450 00:18:40,470 --> 00:18:42,789 clientes por nombre no es clave primaria 451 00:18:42,789 --> 00:18:44,250 entonces yo 452 00:18:44,250 --> 00:18:46,869 me tiene que recuperar una lista de clientes 453 00:18:46,869 --> 00:18:47,650 vale 454 00:18:47,650 --> 00:18:50,789 el public ya sabéis que en una interfaz no hace falta ponerlo 455 00:18:50,789 --> 00:18:51,750 entonces 456 00:18:51,750 --> 00:18:54,250 de que manera le digo a 457 00:18:54,250 --> 00:18:56,430 sprint que me recupere por otro 458 00:18:56,430 --> 00:18:57,930 parámetro, pues find 459 00:18:57,930 --> 00:18:59,869 by 460 00:18:59,869 --> 00:19:02,349 y aquí pongo el nombre del otro 461 00:19:02,349 --> 00:19:04,390 campo, empezando con mayúscula como los 462 00:19:04,390 --> 00:19:06,269 get, pues si yo tenía 463 00:19:06,269 --> 00:19:08,589 en cliente un nombre 464 00:19:08,589 --> 00:19:11,849 Pues aquí en client 465 00:19:11,849 --> 00:19:13,390 Find by nombre 466 00:19:13,390 --> 00:19:14,250 ¿Vale? 467 00:19:15,150 --> 00:19:17,490 Y aquí le tengo que pasar el parámetro, lógicamente 468 00:19:17,490 --> 00:19:19,970 Y ya está 469 00:19:19,970 --> 00:19:21,549 Tal cual 470 00:19:21,549 --> 00:19:22,789 Si es que es muy mágico 471 00:19:22,789 --> 00:19:24,809 Así por la cara 472 00:19:24,809 --> 00:19:26,609 Por la cara 473 00:19:26,609 --> 00:19:29,250 Él lo implementa deduciéndolo del nombre 474 00:19:29,250 --> 00:19:30,509 ¿Vale? 475 00:19:30,690 --> 00:19:32,329 Y no solo eso, hay más variantes 476 00:19:32,329 --> 00:19:35,509 Aquí creo, aquí ya sí que tendría que mirar la chuleta 477 00:19:35,509 --> 00:19:38,190 Incluso le puedes decir que te lo he ordenado 478 00:19:38,190 --> 00:19:40,789 order descendente o algo así 479 00:19:40,789 --> 00:19:42,490 no lo sé, tendríamos que consultarlo 480 00:19:42,490 --> 00:19:44,390 pero no me lo sé en memoria, pero le puedes 481 00:19:44,390 --> 00:19:46,410 poner más, creo que de hecho 482 00:19:46,410 --> 00:19:48,150 en algún sitio lo tengo aquí 483 00:19:48,150 --> 00:19:49,289 vamos, vamos a ver 484 00:19:49,289 --> 00:19:53,029 no sirve de nada, no lo pregunto 485 00:19:53,029 --> 00:19:54,250 entonces, ¿qué coño me tengo que hacer? 486 00:19:54,329 --> 00:19:55,009 esto es un juego 487 00:19:55,009 --> 00:19:56,490 claro 488 00:19:56,490 --> 00:20:00,430 o lo anterior 489 00:20:00,430 --> 00:20:02,309 después enseñamos esto 490 00:20:02,309 --> 00:20:04,069 vamos a llegar a eso donde voy a decir, bueno, con J 491 00:20:04,069 --> 00:20:04,950 debe ser 492 00:20:04,950 --> 00:20:06,829 A ver 493 00:20:06,829 --> 00:20:09,349 Los dos días antes del examen 494 00:20:09,349 --> 00:20:12,309 Los dedicaremos 495 00:20:12,309 --> 00:20:13,569 Podemos hacerlo un poquito antes 496 00:20:13,569 --> 00:20:15,650 No, un poquito antes 497 00:20:15,650 --> 00:20:17,630 A ver, solo nos queda 498 00:20:17,630 --> 00:20:19,130 Lo único que yo quiero 499 00:20:19,130 --> 00:20:22,009 Lo único que yo quiero que veamos aquí un poquito más 500 00:20:22,009 --> 00:20:24,109 Es esto metido en arquitectura 501 00:20:24,109 --> 00:20:25,430 PIRRES con Spring Boot 502 00:20:25,430 --> 00:20:27,069 Y 503 00:20:27,069 --> 00:20:29,269 Y luego MongoDB 504 00:20:29,269 --> 00:20:31,130 MongoDB, ver las pautas de MongoDB 505 00:20:31,130 --> 00:20:33,190 Cómo funciona y acceder con él es de Java 506 00:20:33,190 --> 00:20:34,250 Eso es un doble vacío 507 00:20:34,250 --> 00:20:36,170 MongoDB es una trata no nacional 508 00:20:36,170 --> 00:20:37,630 Más sencilla 509 00:20:37,630 --> 00:20:39,730 Hombre, MongoDB tiene una complejidad 510 00:20:39,730 --> 00:20:42,190 No se quiere meter, pero bueno, MongoDB más o menos de qué va 511 00:20:42,190 --> 00:20:44,130 Esas son las dos cosas 512 00:20:44,130 --> 00:20:46,349 Que yo quiero ver, que se ven en un par de proyectos 513 00:20:46,349 --> 00:20:47,650 Y luego 514 00:20:47,650 --> 00:20:50,069 Y luego ya cuando 515 00:20:50,069 --> 00:20:50,869 Acabemos eso 516 00:20:50,869 --> 00:20:53,529 Que en tres clases lo hemos acabado 517 00:20:53,529 --> 00:20:54,829 O sea, en tres días lo hemos acabado 518 00:20:54,829 --> 00:20:57,930 Pues hacer una especie de compendio de todo lo que hemos visto 519 00:20:57,930 --> 00:20:59,190 Para resituarnos 520 00:20:59,190 --> 00:21:01,890 Antes de nuestro examen 521 00:21:01,890 --> 00:21:02,329 Que será 522 00:21:02,329 --> 00:21:07,230 A ver, en principio sí 523 00:21:07,230 --> 00:21:08,710 Sí, sí, sí 524 00:21:08,710 --> 00:21:11,190 Que tiene que acabar todavía 525 00:21:11,190 --> 00:21:12,789 Sostenibilidad 526 00:21:12,789 --> 00:21:14,269 Dile que no hace falta 527 00:21:14,269 --> 00:21:16,390 Porque para hacer un test 528 00:21:16,390 --> 00:21:18,970 Y navegar por internet 529 00:21:18,970 --> 00:21:20,529 Podemos estar aprendiendo a hacer 530 00:21:20,529 --> 00:21:21,869 Sostenibilidad ya está la capa del estado 531 00:21:21,869 --> 00:21:24,049 ¿Eh? 532 00:21:26,349 --> 00:21:27,069 Sostenibility 533 00:21:27,069 --> 00:21:29,349 Vale, pues entonces 534 00:21:29,349 --> 00:21:30,970 Aquí vamos a mostrar 535 00:21:30,970 --> 00:21:31,690 Demostrar 536 00:21:31,690 --> 00:21:36,529 Ya 537 00:21:36,529 --> 00:21:38,710 Bueno, hay que sostenerles a ellos 538 00:21:38,710 --> 00:21:41,750 Ay, que no he hecho el servicio 539 00:21:41,750 --> 00:21:42,309 Cachas 540 00:21:42,309 --> 00:21:45,450 Vale 541 00:21:45,450 --> 00:21:49,450 Entonces realmente 542 00:21:49,450 --> 00:21:51,569 Esto de tantas capas es un rollo 543 00:21:51,569 --> 00:21:54,130 Porque un repositorio 544 00:21:54,130 --> 00:21:55,130 Un servicio 545 00:21:55,130 --> 00:21:58,890 Recupera 546 00:21:58,890 --> 00:22:24,180 clientes nombre, string nombre, retun, vale, retun clientes, que es el repositorio, punto, find by nombre, ahí está, 547 00:22:24,180 --> 00:22:27,279 vale, ya tengo en el servicio 548 00:22:27,279 --> 00:22:28,400 el find by nombre 549 00:22:28,400 --> 00:22:31,240 vale, accedo desde el servicio 550 00:22:31,240 --> 00:22:32,160 ya era en mi main 551 00:22:32,160 --> 00:22:33,819 llama service. 552 00:22:36,920 --> 00:22:37,359 recupera 553 00:22:37,359 --> 00:22:38,900 clientes nombre 554 00:22:38,900 --> 00:22:40,759 que este es el que hemos hecho nosotros 555 00:22:40,759 --> 00:22:43,119 bueno, y el de arriba también, que era servicios 556 00:22:43,119 --> 00:22:44,259 que es mucho gusto 557 00:22:44,259 --> 00:22:49,160 recupera clientes 558 00:22:49,160 --> 00:22:50,859 lo único que hace es llamar 559 00:22:50,859 --> 00:22:52,539 al método del reproductorio que acabamos de hacer 560 00:22:52,539 --> 00:22:54,599 No hace más que esto 561 00:22:54,599 --> 00:22:56,519 Estamos haciendo todo muy rápido 562 00:22:56,519 --> 00:23:00,519 Bueno, a ver, no hemos hecho ninguno 563 00:23:00,519 --> 00:23:02,160 Cliente 1 564 00:23:02,160 --> 00:23:03,480 Voy a recuperar cliente 1 565 00:23:03,480 --> 00:23:06,079 Que yo aquí puse a propósito para hacer la prueba 566 00:23:06,079 --> 00:23:07,420 Dos clientes que se llamaran igual 567 00:23:07,420 --> 00:23:09,539 Para que me recuperaran los dos 568 00:23:09,539 --> 00:23:14,619 Cliente 1 569 00:23:14,619 --> 00:23:16,240 Y esto como es una lista 570 00:23:16,240 --> 00:23:18,980 Pues vamos a 571 00:23:18,980 --> 00:23:21,119 Mostrarle los clientes 572 00:23:21,119 --> 00:23:21,880 De esa lista 573 00:23:21,880 --> 00:23:42,740 Correcto, vale 574 00:23:42,740 --> 00:23:45,000 pues él ha construido 575 00:23:45,000 --> 00:23:46,900 solo el solito, el select 576 00:23:46,900 --> 00:23:49,259 a partir del nombre del método 577 00:23:49,259 --> 00:23:51,259 entonces hombre 578 00:23:51,259 --> 00:23:52,740 hay que reconocerle algunas cosas 579 00:23:52,740 --> 00:23:53,480 ¿no? 580 00:23:55,160 --> 00:23:56,680 que haga estas cosas solo 581 00:23:56,680 --> 00:23:58,039 está muy bien 582 00:23:58,039 --> 00:24:00,759 vale, entonces 583 00:24:00,759 --> 00:24:02,980 hacer métodos que recuperen 584 00:24:02,980 --> 00:24:04,960 por otro parámetro 585 00:24:04,960 --> 00:24:07,000 muy sencillo y ya está 586 00:24:07,000 --> 00:24:09,000 pero hay veces que lo que yo quiero 587 00:24:09,000 --> 00:24:11,019 es una consulta un poquito más rara 588 00:24:11,019 --> 00:24:30,619 Por ejemplo, recuperar todos los clientes, a ver, vamos a pensar uno y luego le pedimos al JPQL, imaginaos que queremos recuperar todos los clientes que han pedido, pedidos, ¿qué? Pedido que tiene, ID y concepto. 589 00:24:30,619 --> 00:24:34,279 que han pedido bolis 590 00:24:34,279 --> 00:24:38,000 claro, que han pedido bolis 591 00:24:38,000 --> 00:24:39,259 o por concepto 592 00:24:39,259 --> 00:24:42,240 entonces, esto no es un método tan sencillo 593 00:24:42,240 --> 00:24:43,980 de poner porque concepto 594 00:24:43,980 --> 00:24:45,900 no es un parámetro de cliente 595 00:24:45,900 --> 00:24:48,019 entonces, aprovecharme de esto 596 00:24:48,019 --> 00:24:49,119 de aquí, pues no puedo 597 00:24:49,119 --> 00:24:54,619 vale, el barra baja te deja 598 00:24:54,619 --> 00:24:55,960 coger de dentro de 599 00:24:55,960 --> 00:25:00,539 puede ser 600 00:25:00,539 --> 00:25:01,599 sí, no lo sé 601 00:25:01,599 --> 00:25:04,400 pero bueno, vamos a ponerlo como ejemplo 602 00:25:04,400 --> 00:25:06,460 de consult método en el cual yo quiero 603 00:25:06,460 --> 00:25:08,500 una query en concreto, quiero que haga una query 604 00:25:08,500 --> 00:25:10,200 mi query, haz esta query y devuélveme 605 00:25:10,200 --> 00:25:12,500 entonces, ¿qué query necesitaríamos 606 00:25:12,500 --> 00:25:14,119 hacer para 607 00:25:14,119 --> 00:25:16,440 recuperar todos los 608 00:25:16,440 --> 00:25:18,180 pues una query jpql 609 00:25:18,180 --> 00:25:20,539 que lógicamente no la vamos a hacer 610 00:25:20,539 --> 00:25:22,319 nosotros, no vaya a ser que nos 611 00:25:22,319 --> 00:25:24,440 cansemos y pensemos 612 00:25:24,440 --> 00:25:26,380 demasiado y aparte porque no sabemos hacer 613 00:25:26,380 --> 00:25:27,579 jpql 614 00:25:27,579 --> 00:25:30,380 a ver, sí que sabríamos en realidad 615 00:25:30,380 --> 00:25:32,259 select cliente 616 00:25:32,259 --> 00:25:35,279 vamos a tratar de escribirla 617 00:25:35,279 --> 00:25:36,220 a ver hasta donde llegamos 618 00:25:36,220 --> 00:25:38,859 y luego con lo que sabemos 619 00:25:38,859 --> 00:25:40,759 si que sabríamos escribirla 620 00:25:40,759 --> 00:25:42,440 vale, entonces yo le digo aquí 621 00:25:42,440 --> 00:25:43,359 esto es una query 622 00:25:43,359 --> 00:25:47,259 vale, y ahora me voy a hacer 623 00:25:47,259 --> 00:25:49,099 mi query 624 00:25:49,099 --> 00:25:51,000 mi query en jpql 625 00:25:51,000 --> 00:25:52,980 sería select, que quiero seleccionar 626 00:25:52,980 --> 00:25:54,299 cliente 627 00:25:54,299 --> 00:25:56,460 cliente 628 00:25:56,460 --> 00:25:59,140 from 629 00:25:59,140 --> 00:26:02,519 Cliente C 630 00:26:02,519 --> 00:26:04,660 ¿Vale? 631 00:26:06,890 --> 00:26:08,210 C, front cliente C 632 00:26:08,210 --> 00:26:10,349 Ahora 633 00:26:10,349 --> 00:26:12,589 Tengo que ligarla con pedidos 634 00:26:12,589 --> 00:26:15,309 Porque la búsqueda va a ser en pedido 635 00:26:15,309 --> 00:26:17,250 Entonces esto tengo que hacer un join 636 00:26:17,250 --> 00:26:18,309 Que tanto os gusta 637 00:26:18,309 --> 00:26:21,670 Vale, aquí el join no es 638 00:26:21,670 --> 00:26:23,410 Con el nombre de tabla 639 00:26:23,410 --> 00:26:24,089 Es with 640 00:26:24,089 --> 00:26:27,910 C.úneme con sus pedidos 641 00:26:27,910 --> 00:26:29,009 ¿Vale? 642 00:26:29,190 --> 00:26:30,990 Únemelo con sus pedidos, por favor 643 00:26:30,990 --> 00:26:33,829 Porque si yo no pongo join con sus pedidos 644 00:26:33,829 --> 00:26:35,210 No me carga sus pedidos 645 00:26:35,210 --> 00:26:35,950 No me los carga 646 00:26:35,950 --> 00:26:36,809 Vale 647 00:26:36,809 --> 00:26:41,009 Vale, entonces esto es para decir 648 00:26:41,009 --> 00:26:43,269 Cárgame también los pedidos, ojo, que son P 649 00:26:43,269 --> 00:26:46,670 Y ahora, ¿cuál es mi cláusula de búsqueda? 650 00:26:49,759 --> 00:26:50,079 Where 651 00:26:50,079 --> 00:26:52,019 Joler 652 00:26:52,019 --> 00:26:54,160 Where 653 00:26:54,160 --> 00:26:56,859 P, que es el pedido 654 00:26:56,859 --> 00:26:58,980 Punto, concepto 655 00:26:58,980 --> 00:27:01,539 Igual al parámetro 656 00:27:01,539 --> 00:27:03,099 Que el parámetro jpql 657 00:27:03,099 --> 00:27:05,059 recordad que es dos puntos con el nombre 658 00:27:05,059 --> 00:27:06,160 que a mí me dé la gana poner 659 00:27:06,160 --> 00:27:08,839 concepto, por ejemplo 660 00:27:08,839 --> 00:27:09,559 vale 661 00:27:09,559 --> 00:27:13,480 ahora le preguntamos 662 00:27:13,480 --> 00:27:14,960 a GPS si lo hemos escrito bien 663 00:27:14,960 --> 00:27:17,200 vale, y ahora yo aquí pondría mi método 664 00:27:17,200 --> 00:27:17,960 que es 665 00:27:17,960 --> 00:27:23,269 list cliente 666 00:27:23,269 --> 00:27:26,730 recupera 667 00:27:26,730 --> 00:27:29,049 clientes 668 00:27:29,910 --> 00:27:30,809 por 669 00:27:30,809 --> 00:27:33,049 la verdad es que 670 00:27:33,049 --> 00:27:35,089 Estando en un repositorio debería ponerlo en inglés 671 00:27:35,089 --> 00:27:39,900 Find clientes 672 00:27:39,900 --> 00:27:40,440 By 673 00:27:40,440 --> 00:27:43,140 Concepto 674 00:27:43,140 --> 00:27:46,099 Y ahora yo le tengo que decir 675 00:27:46,099 --> 00:27:46,859 Que 676 00:27:46,859 --> 00:27:51,500 Que lo que yo le voy a pasar aquí 677 00:27:51,500 --> 00:27:52,839 Es un parámetro 678 00:27:52,839 --> 00:27:55,660 Vale, le tengo que decir aquí 679 00:27:55,660 --> 00:27:57,839 Que esto lo tiene que usar 680 00:27:57,839 --> 00:27:59,640 Como parámetro para inyectarlo aquí 681 00:27:59,640 --> 00:28:01,339 Entonces esto lo hago 682 00:28:01,339 --> 00:28:05,500 Con esto de aquí 683 00:28:05,500 --> 00:28:05,980 Vale 684 00:28:05,980 --> 00:28:09,359 No sé si lo he escrito bien del todo 685 00:28:09,359 --> 00:28:11,740 Para 686 00:28:11,740 --> 00:28:12,700 Eh 687 00:28:12,700 --> 00:28:16,259 Stream 688 00:28:16,259 --> 00:28:18,500 Creo que el stream hay que ponerlo delante 689 00:28:18,500 --> 00:28:22,970 A ver, se lo voy a pasar así 690 00:28:22,970 --> 00:28:23,930 Entre los HGPT porque 691 00:28:23,930 --> 00:28:27,390 Más cómodo que buscar la chuleta por ahí en mis proyectos 692 00:28:27,390 --> 00:28:28,930 Vale 693 00:28:28,930 --> 00:28:40,599 A ver que me dice 694 00:28:40,599 --> 00:28:42,500 Casi 695 00:28:42,500 --> 00:28:44,359 Vale, en param, vale, el param 696 00:28:44,359 --> 00:28:46,940 Eh, ah, vale, vale 697 00:28:46,940 --> 00:28:49,180 Es que lo tengo que pasar aquí 698 00:28:49,180 --> 00:28:54,289 ¿Qué estaba faltando? 699 00:28:54,470 --> 00:28:54,750 El para 700 00:28:54,750 --> 00:29:00,539 El parámetro 701 00:29:00,539 --> 00:29:02,779 Claro, el nombre del parámetro, parezco tonta 702 00:29:02,779 --> 00:29:06,509 Vale 703 00:29:06,509 --> 00:29:08,950 Este es el primer del nombre 704 00:29:08,950 --> 00:29:10,809 Lógicamente a este le llamo 705 00:29:10,809 --> 00:29:11,730 Como me dé la gana 706 00:29:11,730 --> 00:29:14,630 A este le llamo como quiera, lógicamente 707 00:29:14,630 --> 00:29:15,950 ¿Vale? 708 00:29:17,710 --> 00:29:18,230 Entonces 709 00:29:18,230 --> 00:29:20,329 Este parámetro de aquí 710 00:29:20,329 --> 00:29:22,849 va a servir para inyectar este 711 00:29:22,849 --> 00:29:24,630 que esta query tiene 712 00:29:24,630 --> 00:29:26,910 más parámetros, más incógnitas 713 00:29:26,910 --> 00:29:28,730 aquí separo por comas 714 00:29:28,730 --> 00:29:29,630 para bla bla bla 715 00:29:29,630 --> 00:29:31,349 ¿vale? 716 00:29:32,650 --> 00:29:34,650 el concepto del para 717 00:29:34,650 --> 00:29:36,869 sería el dos puntos 718 00:29:36,869 --> 00:29:38,609 concepto, claro, esto es como 719 00:29:38,609 --> 00:29:40,710 la interrogación del SQL 720 00:29:40,710 --> 00:29:42,289 del prepare de statement 721 00:29:42,289 --> 00:29:44,690 dos puntos delante y esto de ahí 722 00:29:44,690 --> 00:29:46,890 bueno pues 723 00:29:46,890 --> 00:29:48,769 esta de aquí 724 00:29:48,769 --> 00:29:52,539 Ahora tendríamos que hacer un servicio 725 00:29:52,539 --> 00:29:53,380 Claro 726 00:29:53,380 --> 00:30:18,029 Y este así a lo bestia 727 00:30:18,029 --> 00:30:19,490 Pues directamente retune 728 00:30:19,490 --> 00:30:22,450 Clientes 729 00:30:22,450 --> 00:30:24,970 Y esto era 730 00:30:24,970 --> 00:30:32,640 Find by clientes concepto 731 00:30:32,640 --> 00:30:34,920 Y ahora en nuestro main 732 00:30:34,920 --> 00:30:43,289 En nuestro main 733 00:30:43,289 --> 00:30:43,829 De aquí 734 00:30:43,829 --> 00:30:51,079 Recupera clientes por concepto 735 00:30:51,079 --> 00:30:53,420 Ponedle alguno 736 00:30:53,420 --> 00:30:56,890 A ver pedidos 737 00:30:56,890 --> 00:31:02,599 Vale 738 00:31:02,599 --> 00:31:05,359 Pedido a uno, yo lo tengo dos veces 739 00:31:05,359 --> 00:31:07,559 Pedido a uno por dos clientes distintos 740 00:31:07,559 --> 00:31:11,059 Entonces puedo poner 741 00:31:11,059 --> 00:31:12,180 Pedido a uno 742 00:31:12,180 --> 00:31:15,380 No sé si estaba con mayúscula o minúscula 743 00:31:15,380 --> 00:31:17,519 Con minúscula 744 00:31:17,519 --> 00:31:22,869 Pedido a uno 745 00:31:22,869 --> 00:31:31,759 Vale, aquí la verdad es que 746 00:31:31,759 --> 00:31:33,240 En una consulta real 747 00:31:33,240 --> 00:31:37,039 Sí, voy un segundo 748 00:31:37,039 --> 00:31:53,460 ¿Cuál? ¿Este? 749 00:31:55,259 --> 00:31:56,839 es llamar al otro que hemos hecho 750 00:31:56,839 --> 00:32:06,490 y ya está, vale, la verdad es que 751 00:32:06,490 --> 00:32:07,589 en una consulta real 752 00:32:07,589 --> 00:32:10,130 no haríamos 753 00:32:10,130 --> 00:32:11,730 esta query de aquí 754 00:32:11,730 --> 00:32:13,809 donde estamos, en cliente repository 755 00:32:13,809 --> 00:32:15,950 no lo haríamos aquí con el igual 756 00:32:15,950 --> 00:32:17,890 haríamos un like 757 00:32:17,890 --> 00:32:20,069 que tuviera el, no, haríamos 758 00:32:20,069 --> 00:32:21,829 para que el concepto no fuera clavado 759 00:32:21,829 --> 00:32:24,829 vamos a 760 00:32:24,829 --> 00:32:29,440 cámbiame 761 00:32:29,440 --> 00:32:31,420 la jpql 762 00:32:31,420 --> 00:32:36,500 para que el concepto 763 00:32:36,500 --> 00:32:38,400 contenga un patrón, porque es que si no 764 00:32:38,400 --> 00:32:39,619 Que se queda muy feo 765 00:32:39,619 --> 00:32:41,700 Concepto contenga 766 00:32:41,700 --> 00:32:43,619 Un patrón 767 00:32:43,619 --> 00:32:46,019 En lugar de ser 768 00:32:46,019 --> 00:32:47,539 Tal cual 769 00:32:47,539 --> 00:32:56,380 Venga, le ponemos esto 770 00:32:56,380 --> 00:32:59,660 Que es mucho más bonito, que sea igual tal cual 771 00:32:59,660 --> 00:33:01,660 Vamos a ponerle esto 772 00:33:01,660 --> 00:33:16,599 Así queda mejor 773 00:33:16,599 --> 00:33:19,400 Que el concepto se parezca 774 00:33:19,400 --> 00:33:20,579 O contenga 775 00:33:20,579 --> 00:33:21,660 Esto de ahí 776 00:33:21,660 --> 00:33:25,079 Ahora mejor, entonces si yo ahora en mi main 777 00:33:25,079 --> 00:33:29,509 Si yo ahora en mi main 778 00:33:29,509 --> 00:33:31,170 pongo pedido sin más, me va a sacar 779 00:33:31,170 --> 00:33:33,329 ciento y la madre, porque todos son pedido 780 00:33:33,329 --> 00:33:34,490 A, pedido B, pedido C 781 00:33:34,490 --> 00:33:38,250 vale, pues con el like más bonito 782 00:33:38,250 --> 00:33:41,109 voy a poner este y me tiene que sacar tropecientos 783 00:33:41,109 --> 00:33:42,910 tropecientos, porque 784 00:33:42,910 --> 00:33:43,930 todos son así 785 00:33:43,930 --> 00:33:47,009 a ver si es verdad que me 786 00:33:47,009 --> 00:33:48,210 saca tropecientos 787 00:33:48,210 --> 00:33:54,680 voy 788 00:33:54,680 --> 00:33:56,720 a ver si funciona, porque, ah bien, la query 789 00:33:56,720 --> 00:33:57,380 estaba bien 790 00:33:57,380 --> 00:34:00,160 y al final veis 791 00:34:00,160 --> 00:34:02,779 todo es SQL 792 00:34:02,779 --> 00:34:04,920 jdbc está abajo 793 00:34:04,920 --> 00:34:06,960 con su pico y pala 794 00:34:06,960 --> 00:34:07,500 ¿vale? 795 00:34:08,280 --> 00:34:09,500 ¿y qué querías ver? 796 00:34:11,019 --> 00:34:12,980 el concat que está 797 00:34:12,980 --> 00:34:13,900 aquí 798 00:34:13,900 --> 00:34:25,400 no, se lo he preguntado a él 799 00:34:25,400 --> 00:34:27,119 le he dicho, si quiero que contenga un patrón 800 00:34:27,119 --> 00:34:29,820 se lo he cambiado 801 00:34:29,820 --> 00:34:32,320 le he dicho, cámbiame la jpql 802 00:34:32,320 --> 00:34:35,320 ¿dónde se lo he preguntado? 803 00:34:36,460 --> 00:34:36,960 bueno, aquí 804 00:34:36,960 --> 00:34:39,679 cámbiame la jpql para que el concepto 805 00:34:39,679 --> 00:34:41,400 contenga un patrón en lugar de ser tal cual 806 00:34:41,400 --> 00:34:43,659 porque hombre, es una búsqueda más real 807 00:34:43,659 --> 00:34:45,039 más realista, normalmente 808 00:34:45,039 --> 00:34:47,159 me gustaba más que el igual 809 00:34:47,159 --> 00:34:53,579 ¿cómo? 810 00:34:56,400 --> 00:34:58,099 sí, hay upper case 811 00:34:58,099 --> 00:34:59,840 lower, hay lower y upper 812 00:34:59,840 --> 00:35:01,940 en JPQL por lo menos 813 00:35:01,940 --> 00:35:03,519 y en HQL 814 00:35:03,519 --> 00:35:05,119 supongo que en SQL 815 00:35:05,119 --> 00:35:07,380 no sé si en SQL hay lower y upper 816 00:35:07,380 --> 00:35:09,579 no lo sé, aquí sí lo hay 817 00:35:09,579 --> 00:35:10,820 porque me suena haberlo visto 818 00:35:10,820 --> 00:35:13,980 a ver, hay muchísimas posibilidades 819 00:35:13,980 --> 00:35:15,360 entonces efectivamente esto 820 00:35:15,360 --> 00:35:17,340 teniendo la idea básica, pues uno 821 00:35:17,340 --> 00:35:19,840 Entonces podríamos ya que nos ponemos 822 00:35:19,840 --> 00:35:21,579 Vamos a incorporarle el método 823 00:35:21,579 --> 00:35:23,320 Para quitar el lazy exception 824 00:35:23,320 --> 00:35:24,079 Este famoso 825 00:35:24,079 --> 00:35:27,039 Que nos había dado aquí 826 00:35:27,039 --> 00:35:29,820 Si yo quiero ver el número de pedidos del cliente 827 00:35:29,820 --> 00:35:31,340 Después de haberlo recuperado 828 00:35:31,340 --> 00:35:33,659 Pues vamos a hacerle un método 829 00:35:33,659 --> 00:35:35,059 Que me recupere con pedidos 830 00:35:35,059 --> 00:35:36,460 Entonces 831 00:35:36,460 --> 00:35:40,440 Nos vamos a hacer 832 00:35:40,440 --> 00:35:43,000 Otra consulta por query 833 00:35:43,000 --> 00:35:47,760 Otra consulta por query 834 00:35:47,760 --> 00:35:49,440 Pero ahora que la query sea 835 00:35:49,440 --> 00:35:53,369 Seleccioname el cliente 836 00:35:53,369 --> 00:35:54,829 Con todos sus pedidos 837 00:35:54,829 --> 00:35:57,230 ¿Cómo? 838 00:36:00,989 --> 00:36:02,070 No lo probé 839 00:36:02,070 --> 00:36:03,670 ¿Por qué? ¿A vosotros no os ha funcionado? 840 00:36:04,889 --> 00:36:06,210 Venga, vamos a probarlo 841 00:36:06,210 --> 00:36:07,829 Espérate que comente esto que estaba haciendo 842 00:36:07,829 --> 00:36:13,610 Igual 843 00:36:13,610 --> 00:36:15,070 ¿Así no te ha funcionado? 844 00:36:18,230 --> 00:36:19,429 Yo así no lo he probado 845 00:36:19,429 --> 00:36:23,389 Ah, perdón, este me sobra 846 00:36:23,389 --> 00:36:25,070 Vale, a ver 847 00:36:25,070 --> 00:36:28,550 ¿Qué es lo que me falla aquí? 848 00:36:30,920 --> 00:36:32,059 ¿Por qué me ha aparecido esta? 849 00:36:32,960 --> 00:36:36,099 ¿Por qué me ha aparecido este error ahí? 850 00:36:38,039 --> 00:36:39,699 Porque tengo aquí una llave de más 851 00:36:39,699 --> 00:36:41,800 Ah, no, porque he comentado la llave esta sin querer 852 00:36:41,800 --> 00:36:43,679 Vale 853 00:36:43,679 --> 00:36:47,139 Vale 854 00:36:47,139 --> 00:36:49,480 Entonces 855 00:36:49,480 --> 00:36:52,579 Ahora vamos a poner pedido a uno 856 00:36:52,579 --> 00:36:54,519 Para que sea así tal cual 857 00:36:54,519 --> 00:37:07,949 pero ¿qué te decía? 858 00:37:08,570 --> 00:37:09,289 me decía 859 00:37:09,289 --> 00:37:11,429 que no había conseguido nada 860 00:37:11,429 --> 00:37:12,969 igual al concepto 861 00:37:12,969 --> 00:37:14,829 y el concepto es que la mente es hola 862 00:37:14,829 --> 00:37:16,289 y puse hola 863 00:37:16,289 --> 00:37:18,489 y tienes conceptos que se llaman hola 864 00:37:18,489 --> 00:37:19,530 o sea te daban una excepción 865 00:37:19,530 --> 00:37:21,050 con el contraste sabes 866 00:37:21,050 --> 00:37:22,949 y no se puede 867 00:37:22,949 --> 00:37:25,670 además puse la mayúscula y el menú 868 00:37:25,670 --> 00:37:28,170 lo copio y te dejo 869 00:37:28,170 --> 00:37:32,730 no lo sé 870 00:37:32,730 --> 00:37:34,489 pero estaría bien que lo investigaras 871 00:37:34,489 --> 00:37:35,030 y nos lo cuentes 872 00:37:35,030 --> 00:37:37,369 Vale, entonces 873 00:37:37,369 --> 00:37:38,489 Estábamos haciendo 874 00:37:38,489 --> 00:37:41,550 Espera, voy a poner la que estaba, que me gusta más 875 00:37:41,550 --> 00:37:43,670 Esta 876 00:37:43,670 --> 00:37:47,409 Y ahora la que estaba yo haciendo antes 877 00:37:47,409 --> 00:37:49,389 Era para ya que estábamos 878 00:37:49,389 --> 00:37:51,710 Vamos a devolver 879 00:37:51,710 --> 00:37:53,030 El cliente con pedidos 880 00:37:53,030 --> 00:37:55,570 Para quitar la lazy esta 881 00:37:55,570 --> 00:37:57,130 Entonces aquí es donde 882 00:37:57,130 --> 00:37:59,130 Me falta la llave que he quitado 883 00:37:59,130 --> 00:38:03,880 Entonces vamos a coger 884 00:38:03,880 --> 00:38:06,420 El cliente con todos sus pedidos 885 00:38:06,420 --> 00:38:07,900 con todos sus pedidos 886 00:38:07,900 --> 00:38:10,539 donde cliente.id 887 00:38:10,539 --> 00:38:12,300 sea igual 888 00:38:12,300 --> 00:38:13,900 a el id 889 00:38:13,900 --> 00:38:16,380 y ahora el param 890 00:38:16,380 --> 00:38:18,340 id que sea 891 00:38:18,340 --> 00:38:18,880 long 892 00:38:18,880 --> 00:38:29,000 si es lo que quiero probar 893 00:38:29,000 --> 00:38:30,760 se puede 894 00:38:30,760 --> 00:38:35,900 claro pero lo estoy 895 00:38:35,900 --> 00:38:36,980 uniendo a sus pedidos 896 00:38:36,980 --> 00:38:39,260 lo estoy uniendo a pedidos 897 00:38:39,260 --> 00:38:41,679 claro recuperame cliente 898 00:38:41,679 --> 00:38:43,659 con los pedidos dentro. Entonces, esto se 899 00:38:43,659 --> 00:38:45,500 salta en Lazy, porque le estoy yo forzando 900 00:38:45,500 --> 00:38:47,380 a volver pedidos. El propio 901 00:38:47,380 --> 00:38:48,760 de FindById no se salta. 902 00:38:49,980 --> 00:38:51,699 Claro, el FindById no tiene 903 00:38:51,699 --> 00:38:51,920 join. 904 00:38:57,380 --> 00:38:59,519 No, en cualquier caso, de hacer eso, tendría que 905 00:38:59,519 --> 00:39:01,679 hacerlo en la JPQL, porque aquí yo no puedo 906 00:39:01,679 --> 00:39:03,760 hacer código. Pero es que en la JPQL 907 00:39:03,760 --> 00:39:05,219 ya lo estoy uniendo con esto. 908 00:39:05,639 --> 00:39:07,500 Creo. Es que lo quiero probar ahora 909 00:39:07,500 --> 00:39:09,559 sobre la marcha. ¿Y dónde me 910 00:39:09,559 --> 00:39:11,280 faltan o me sobran llaves aquí? 911 00:39:11,280 --> 00:39:12,960 Ah, es que me sobra una, jolines 912 00:39:12,960 --> 00:39:13,980 Vale 913 00:39:13,980 --> 00:39:18,760 Pues entonces no me gusta 914 00:39:18,760 --> 00:39:21,199 Eh, find clientes 915 00:39:21,199 --> 00:39:23,500 With pedidos 916 00:39:23,500 --> 00:39:27,460 Eh, perdón, tienes razón 917 00:39:27,460 --> 00:39:29,079 Find cliente 918 00:39:29,079 --> 00:39:29,980 By 919 00:39:29,980 --> 00:39:31,539 Adelante 920 00:39:31,539 --> 00:39:33,639 Se puede 921 00:39:33,639 --> 00:39:37,099 Find cliente by id 922 00:39:37,099 --> 00:39:39,260 With pedido y devuelve un único objeto 923 00:39:39,260 --> 00:39:39,940 Cliente 924 00:39:39,940 --> 00:39:43,940 Vale, find cliente by id 925 00:39:43,940 --> 00:39:45,900 Con pedidos, dado ese id 926 00:39:45,900 --> 00:39:48,360 Vamos a ver si lo hemos hecho bien 927 00:39:48,360 --> 00:39:52,579 Tendríamos el servicio 928 00:39:52,579 --> 00:39:53,500 Que sería 929 00:39:53,500 --> 00:39:58,579 Public cliente 930 00:39:59,780 --> 00:40:04,039 Recupera 931 00:40:04,039 --> 00:40:07,960 Cliente con 932 00:40:07,960 --> 00:40:10,039 Pedidos 933 00:40:10,039 --> 00:40:12,340 log 934 00:40:12,340 --> 00:40:14,539 id 935 00:40:14,539 --> 00:40:18,219 este me devuelve 936 00:40:18,219 --> 00:40:22,159 clientes punto 937 00:40:22,159 --> 00:40:24,300 recupera 938 00:40:24,300 --> 00:40:25,460 cliente 939 00:40:25,460 --> 00:40:26,139 by 940 00:40:26,139 --> 00:40:35,380 estoy en service 941 00:40:35,380 --> 00:40:36,119 find 942 00:40:36,119 --> 00:40:38,659 a ver es que esto es porque 943 00:40:38,659 --> 00:40:40,320 tengo el este mal 944 00:40:40,320 --> 00:40:44,119 clientes.findcliente 945 00:40:44,119 --> 00:40:45,599 by id with pedidos 946 00:40:45,599 --> 00:40:46,159 vale 947 00:40:46,159 --> 00:40:49,679 entonces, este me lo recuperaría ya 948 00:40:49,679 --> 00:40:51,679 con todos sus pedidos, entonces yo lo llamo en el 949 00:40:51,679 --> 00:40:53,280 main, ahora 950 00:40:53,280 --> 00:40:57,579 voy a llamar al cliente 951 00:40:57,579 --> 00:40:59,679 que será 952 00:40:59,679 --> 00:41:01,960 así, recupera cliente 953 00:41:01,960 --> 00:41:03,559 con pedidos y ahora voy a intentar 954 00:41:03,559 --> 00:41:05,920 mostrar sus pedidos 955 00:41:05,920 --> 00:41:07,840 y aquí ya si que no me debería salir 956 00:41:07,840 --> 00:41:08,519 la excepción 957 00:41:08,519 --> 00:41:10,159 vale 958 00:41:10,159 --> 00:41:16,980 No, porque hoy tengo que hacer cosas en secretaría 959 00:41:16,980 --> 00:41:18,539 Vamos a comprobar que esto funciona 960 00:41:18,539 --> 00:41:21,440 Y hoy ya tenéis sostenibilidad 961 00:41:21,440 --> 00:41:22,699 Y podéis cerrar ya 962 00:41:22,699 --> 00:41:28,239 ¿No venís preparados para sosteneros? 963 00:41:28,239 --> 00:41:29,019 No 964 00:41:29,019 --> 00:41:31,300 C.get 965 00:41:31,300 --> 00:41:34,239 Pedidos.size 966 00:41:35,159 --> 00:41:37,659 Nun pedidos 967 00:41:37,659 --> 00:41:49,780 Vamos a ver 968 00:41:49,780 --> 00:41:52,920 si nos salen los pedidos del cliente 969 00:41:52,920 --> 00:41:54,880 uno, sin dar errores 970 00:41:54,880 --> 00:41:56,719 no nos salen 971 00:41:56,719 --> 00:41:58,719 que mala noticia me has dado 972 00:41:58,719 --> 00:41:59,920 porque tenemos que irnos 973 00:41:59,920 --> 00:42:01,440 que mala noticia 974 00:42:01,440 --> 00:42:20,579 el mismo 975 00:42:20,579 --> 00:42:24,070 el mismo 976 00:42:24,070 --> 00:42:26,989 el mismo 977 00:42:26,989 --> 00:42:31,730 yo hice pedidos 978 00:42:31,730 --> 00:42:35,170 a ti te cortaste 979 00:42:35,170 --> 00:42:37,929 el mismo