1 00:00:00,820 --> 00:00:03,960 Vale, pues a ver 2 00:00:03,960 --> 00:00:06,400 De 1 a muchos 3 00:00:06,400 --> 00:00:07,379 Está claro 4 00:00:07,379 --> 00:00:10,240 Luego, de 1 a 1 5 00:00:10,240 --> 00:00:12,779 Nos suena 6 00:00:12,779 --> 00:00:14,800 Que la notación JPA será 1 to 1 7 00:00:14,800 --> 00:00:17,460 Un jugador tiene un solo perfil 8 00:00:17,460 --> 00:00:20,239 ¿Verdad? 9 00:00:22,679 --> 00:00:23,620 Y un perfil 10 00:00:23,620 --> 00:00:25,160 No, perdón, perdón 11 00:00:25,160 --> 00:00:28,539 El perfil de 0 a 1 12 00:00:28,539 --> 00:00:30,100 Perdón, no es de hecho de 1 a 1 13 00:00:30,100 --> 00:00:31,699 Pero, es decir 14 00:00:31,699 --> 00:00:33,039 Un perfil 15 00:00:33,039 --> 00:00:36,200 Está asociado a un jugador 16 00:00:36,200 --> 00:00:38,759 ¿Vale? O sea, un jugador tiene su perfil 17 00:00:38,759 --> 00:00:39,740 Ya está 18 00:00:39,740 --> 00:00:41,219 Es una relación de uno a uno 19 00:00:41,219 --> 00:00:43,420 O sea, un jugador no puede tener muchos perfiles 20 00:00:43,420 --> 00:00:46,060 Bueno, pues en este 21 00:00:46,060 --> 00:00:47,259 En este juego mío, no 22 00:00:47,259 --> 00:00:48,979 Solo puedes tener uno 23 00:00:48,979 --> 00:00:51,880 ¿Vale? Entonces esta es la relación de uno a uno 24 00:00:51,880 --> 00:00:53,039 No lo entiendo 25 00:00:53,039 --> 00:00:55,960 Porque el de equipo, el de jugador 26 00:00:55,960 --> 00:00:57,759 Es una mucho y tiene la misma fecha 27 00:00:57,759 --> 00:01:06,219 Me da igual el dibujito 28 00:01:06,219 --> 00:01:07,140 Me da igual lo que sea 29 00:01:07,140 --> 00:01:08,719 Pero nosotros lo vamos a mapear 30 00:01:08,719 --> 00:01:09,819 En nuestra aplicación 31 00:01:09,819 --> 00:01:12,920 Como que un jugador 32 00:01:12,920 --> 00:01:14,239 Tiene un único perfil 33 00:01:14,239 --> 00:01:16,719 ¿Cómo me aparezca ahí? 34 00:01:16,859 --> 00:01:17,480 Pues no lo sé 35 00:01:17,480 --> 00:01:20,620 ¿Cómo forzar 36 00:01:20,620 --> 00:01:21,939 Desde SQL 37 00:01:21,939 --> 00:01:24,760 Que un jugador 38 00:01:24,760 --> 00:01:26,519 No pueda tener muchos perfiles 39 00:01:26,519 --> 00:01:28,920 Pues no sé si de hecho 40 00:01:28,920 --> 00:01:31,000 si desde SQL se puede forzar, no lo sé 41 00:01:31,000 --> 00:01:31,799 lo desconozco 42 00:01:31,799 --> 00:01:34,599 pero desde mi aplicación sí que puedo 43 00:01:34,599 --> 00:01:37,319 ¿vale? que es la parte que me interesa a mí 44 00:01:37,319 --> 00:01:39,140 entonces 45 00:01:39,140 --> 00:01:41,019 en SQL en particular 46 00:01:41,019 --> 00:01:42,480 cada entrada 47 00:01:42,480 --> 00:01:46,920 yo no sé si se puede forzar 48 00:01:46,920 --> 00:01:48,859 desde SQL, no lo sé, eso os lo pregunto a vosotros 49 00:01:48,859 --> 00:01:50,719 que igual sabéis, si se puede 50 00:01:50,719 --> 00:01:52,840 forzar que solo haya 51 00:01:52,840 --> 00:01:54,640 un registro perfil gamer 52 00:01:54,640 --> 00:01:56,680 para cada campo 53 00:01:56,680 --> 00:01:58,599 jugador ID, no sé si se puede 54 00:01:58,599 --> 00:02:06,019 imagino que podrás incorporar algún tipo 55 00:02:06,019 --> 00:02:07,840 de índice que te fuerce 56 00:02:07,840 --> 00:02:09,740 a que solamente haya una entrada 57 00:02:09,740 --> 00:02:11,759 perfil gamer para cada 58 00:02:11,759 --> 00:02:13,300 campo jugador ID, no lo sé 59 00:02:13,300 --> 00:02:15,080 pero para mi aplicación 60 00:02:15,080 --> 00:02:17,740 yo lo voy a mapear para que solamente 61 00:02:17,740 --> 00:02:18,319 haya uno 62 00:02:18,319 --> 00:02:21,800 y luego están los videojuegos 63 00:02:21,800 --> 00:02:23,520 y ahora ya esta relación 64 00:02:23,520 --> 00:02:25,039 de muchos a muchos 65 00:02:25,039 --> 00:02:27,919 un jugador puede jugar a un montón de cosas 66 00:02:27,919 --> 00:02:32,560 y cada videojuego puede ser jugado 67 00:02:32,560 --> 00:02:33,699 por muchos jugadores 68 00:02:33,699 --> 00:02:36,639 entonces la relación entre 69 00:02:36,639 --> 00:02:38,680 jugador y equipo de uno a muchos 70 00:02:38,680 --> 00:02:40,719 entre jugador y perfil 71 00:02:40,719 --> 00:02:41,439 de uno a uno 72 00:02:41,439 --> 00:02:44,800 y entre jugador y videojuego de muchos a muchos 73 00:02:44,800 --> 00:02:46,659 ¿vale? un jugador puede 74 00:02:46,659 --> 00:02:47,599 jugar a muchos juegos 75 00:02:47,599 --> 00:02:50,360 y a un juego lo pueden jugar a muchos jugadores 76 00:02:50,360 --> 00:02:52,900 entonces la relación de muchos a muchos 77 00:02:52,900 --> 00:02:54,960 como bien sabéis 78 00:02:54,960 --> 00:02:55,960 no se puede 79 00:02:55,960 --> 00:02:58,240 identificar en SQL 80 00:02:58,240 --> 00:03:02,000 dentro de las propias tablas. 81 00:03:03,180 --> 00:03:03,659 ¿Vale? 82 00:03:04,159 --> 00:03:05,680 A ver, que me estáis despistando 83 00:03:05,680 --> 00:03:07,039 cada uno hablando a su manera. 84 00:03:07,860 --> 00:03:10,000 Entonces, se me va la helido. 85 00:03:10,740 --> 00:03:12,319 Entonces, la relación de muchos a muchos 86 00:03:12,319 --> 00:03:15,159 en el modelo relacional 87 00:03:15,159 --> 00:03:17,719 hay que identificarla con una tabla aparte. 88 00:03:18,360 --> 00:03:19,300 Como bien sabéis. 89 00:03:19,479 --> 00:03:21,099 La de muchos a muchos 90 00:03:21,099 --> 00:03:22,379 tiene que tener una tabla aparte. 91 00:03:22,500 --> 00:03:24,300 No hay otra en el modelo relacional. 92 00:03:24,300 --> 00:03:28,319 entonces la de muchos a muchos tiene dos claves primarias 93 00:03:28,319 --> 00:03:30,060 una clave primaria múltiple 94 00:03:30,060 --> 00:03:33,539 que es la que enlaza el jugador con su videojuego 95 00:03:33,539 --> 00:03:37,539 y luego además puede tener campos que identifiquen 96 00:03:37,539 --> 00:03:38,840 esa relación en concreto 97 00:03:38,840 --> 00:03:43,319 que es algo que no puede en las relaciones de muchos a muchos 98 00:03:43,319 --> 00:03:47,280 no pueden ser identificadas como objetos propios 99 00:03:47,280 --> 00:03:50,680 la de uno a muchos, perdón, la de muchos a muchos sí 100 00:03:50,680 --> 00:03:54,080 es decir, este jugador en qué posición juega 101 00:03:54,080 --> 00:03:55,979 este videojuego y a qué nivel lo juega 102 00:03:55,979 --> 00:03:59,840 la relación de muchos a muchos, repito 103 00:03:59,840 --> 00:04:01,960 puede tener estado propio, puede tener un estado 104 00:04:01,960 --> 00:04:04,199 y ese estado viene dado por el resto 105 00:04:04,199 --> 00:04:05,080 de propiedades 106 00:04:05,080 --> 00:04:08,039 las relaciones de uno a muchos no tienen su 107 00:04:08,039 --> 00:04:10,340 estado propio, simplemente es una relación, este con este 108 00:04:10,340 --> 00:04:12,139 y ya está, no tienen su 109 00:04:12,139 --> 00:04:13,840 estado propio, porque no tienen una tabla propia 110 00:04:13,840 --> 00:04:16,060 las relaciones de muchos a muchos 111 00:04:16,060 --> 00:04:17,980 tienen su tabla propia, entonces pueden 112 00:04:17,980 --> 00:04:20,040 tener un estado, pueden tener 113 00:04:20,040 --> 00:04:20,680 una situación 114 00:04:20,680 --> 00:04:22,980 ¿vale? 115 00:04:24,079 --> 00:04:25,939 Bueno, pues entonces, pregunta. 116 00:04:27,519 --> 00:04:30,620 El perfil de mi jugador me sale que tiene dos relaciones. 117 00:04:33,180 --> 00:04:36,759 Una de un subcreo y otra de... 118 00:04:36,759 --> 00:04:39,120 ¿Te sale dónde? ¿En el dibujito? 119 00:04:39,420 --> 00:04:39,600 Sí. 120 00:04:39,720 --> 00:04:41,420 ¿O sea que tú tienes otra flechita por aquí? 121 00:04:41,600 --> 00:04:41,860 Sí. 122 00:04:42,259 --> 00:04:42,680 Muévelo. 123 00:04:42,759 --> 00:04:43,120 ¿Seguro? 124 00:04:44,040 --> 00:04:47,639 Es que igual lo tienes aquí cambiado, mezclado con otra. 125 00:04:48,779 --> 00:04:50,420 Y se te ha quedado confuso. 126 00:04:50,560 --> 00:04:51,300 Se te crea a veces. 127 00:04:51,639 --> 00:04:52,279 Ya está, ya está. 128 00:04:52,740 --> 00:04:53,040 Vale. 129 00:04:53,759 --> 00:04:54,660 Bueno, pues ahora. 130 00:04:55,899 --> 00:04:59,910 Hacedme 131 00:04:59,910 --> 00:05:02,769 Vamos a hacer la aplicación con algunos casos de uso 132 00:05:02,769 --> 00:05:03,670 Con todo esto de aquí 133 00:05:03,670 --> 00:05:06,089 Vale, primero 134 00:05:06,089 --> 00:05:08,490 Haced las entidades, vale 135 00:05:08,490 --> 00:05:09,269 Haced el modelo 136 00:05:09,269 --> 00:05:18,000 Entonces, antes de poner las anotaciones 137 00:05:18,000 --> 00:05:20,839 Podéis hacer el modelo 138 00:05:20,839 --> 00:05:21,819 Vale 139 00:05:21,819 --> 00:05:24,759 Simplemente con las propiedades 140 00:05:24,759 --> 00:05:26,259 Estoy pensando si 141 00:05:26,259 --> 00:05:28,500 Para ahorrar tiempo de escritura 142 00:05:28,500 --> 00:05:30,519 Leer 143 00:05:30,519 --> 00:05:35,060 No, hombre, no, pues en el examen no os lo voy a dar 144 00:05:35,060 --> 00:05:37,860 Pero en el examen sí que os lo puedo dar 145 00:05:37,860 --> 00:05:40,000 En el examen igual sí que os lo doy 146 00:05:40,000 --> 00:05:42,019 A cachos, para que no haya que escribir tanto 147 00:05:42,019 --> 00:05:43,699 Entonces estaba pensando 148 00:05:43,699 --> 00:05:45,360 Pedirle a HGPT que si nos 149 00:05:45,360 --> 00:05:46,540 Pasarle el script 150 00:05:46,540 --> 00:05:48,819 Y si nos puede dar estas 151 00:05:48,819 --> 00:05:51,339 Pero sin las anotaciones 152 00:05:51,339 --> 00:05:53,920 Para no escribir tanto 153 00:05:53,920 --> 00:05:59,319 Ya, pero aquí no me 154 00:05:59,319 --> 00:06:01,939 Pero aquí no es solo la anotación lo que me interesa 155 00:06:01,939 --> 00:06:03,100 Entonces 156 00:06:03,100 --> 00:06:24,519 Vale, a ver 157 00:06:24,519 --> 00:06:27,019 Si en realidad no tardamos tanto en escribirlas 158 00:06:27,019 --> 00:06:28,800 Las vamos a ir escribiendo en paralelo 159 00:06:28,800 --> 00:06:30,639 Y veréis que rápido 160 00:06:30,639 --> 00:06:32,339 Porque 161 00:06:32,339 --> 00:06:35,220 Venga, vamos a hacer 162 00:06:35,220 --> 00:06:41,069 Project 163 00:06:41,069 --> 00:07:24,759 un entero grandote 164 00:07:24,759 --> 00:07:26,759 tu pono integro long da igual 165 00:07:26,759 --> 00:07:29,660 si los va a jpear lo va a mapear bien 166 00:07:29,660 --> 00:07:37,259 pues venga ya tenemos aquí 167 00:07:37,259 --> 00:07:38,620 videojuegos clase 168 00:07:38,620 --> 00:07:39,639 entonces 169 00:07:39,639 --> 00:07:42,139 Paquete con el modelo 170 00:07:42,139 --> 00:07:53,879 Vale, este es el último proyecto que vamos a hacer 171 00:07:53,879 --> 00:07:55,279 De JPA puro 172 00:07:55,279 --> 00:07:56,019 ¿Vale? 173 00:07:59,120 --> 00:08:00,160 Aquí en clase 174 00:08:00,160 --> 00:08:02,019 Luego yo os puedo mandar cosas 175 00:08:02,019 --> 00:08:02,740 Para que hagáis 176 00:08:02,740 --> 00:08:07,480 Pues habrá que ponerle otra capa por encima 177 00:08:07,480 --> 00:08:09,040 Porque ya se nos están quedando cortas 178 00:08:09,040 --> 00:08:10,680 Tenemos 179 00:08:10,680 --> 00:08:13,740 JDBC y Bernate 180 00:08:13,740 --> 00:08:14,540 Y JPA 181 00:08:14,540 --> 00:08:17,740 Y luego para transversar al patrón dado 182 00:08:17,740 --> 00:08:18,459 Con el servicio 183 00:08:18,459 --> 00:08:20,920 Entonces, como que ya se os está quedando corto 184 00:08:20,920 --> 00:08:21,319 A ver