1
00:00:00,150 --> 00:00:00,960
Bien, continuemos.

2
00:00:01,050 --> 00:00:05,610
Vamos a ver nuestra lista Selleck con una clase país que está asociada al usuario.

3
00:00:05,670 --> 00:00:12,060
Bueno, lo primero en formulario en nuestro proyecto nos vamos al package Models Models Domaine y vamos

4
00:00:12,060 --> 00:00:13,710
a crear esta clase país.

5
00:00:14,160 --> 00:00:27,690
Entonces una clase país finalizar con atributos, por ejemplo un Heidy Integer, Heidy del tipo String

6
00:00:27,690 --> 00:00:32,700
código va a tener un Heidy y también el código del país y el nombre

7
00:00:35,760 --> 00:00:37,200
bien método que trans setter.

8
00:00:40,180 --> 00:00:43,840
Todos seleccionamos bien y qué faltaría.

9
00:00:43,870 --> 00:00:49,270
Bueno, algún constructor para poder crear el objeto para que pase a estos parámetros el Heidy Código

10
00:00:49,360 --> 00:00:51,700
y en nombre País click derecho.

11
00:00:52,660 --> 00:00:58,180
Por acá buscamos constructor usando campos, marcamos los tres por defecto.

12
00:00:58,270 --> 00:01:01,330
En ese orden quitamos el súper no necesario.

13
00:01:01,450 --> 00:01:04,930
Íbamos a querer también otro constructor por defecto vacío.

14
00:01:06,400 --> 00:01:09,630
No sé, por acá, constructor de la superclase.

15
00:01:10,690 --> 00:01:11,230
Perfecto.

16
00:01:11,320 --> 00:01:13,270
Y también quitamos el súper y el comentario.

17
00:01:15,320 --> 00:01:21,350
Bien, entonces dos constructores, uno con parámetros y otro sin parámetros sources ordenar.

18
00:01:21,440 --> 00:01:24,110
Por acá tenemos format bien guardados.

19
00:01:24,350 --> 00:01:27,740
Ahí tenemos nuestra clase de yaba país que está asociada al usuario.

20
00:01:27,770 --> 00:01:35,210
Por lo tanto, ahora usuario por acá, el atributo país que era del tipo String, ahora es del tipo

21
00:01:35,660 --> 00:01:36,170
país.

22
00:01:36,620 --> 00:01:38,210
Bueno, quitamos el not ente.

23
00:01:38,930 --> 00:01:42,140
Recuerden que es para validar estric y no objeto.

24
00:01:42,410 --> 00:01:45,740
Acá podríamos usar, por ejemplo no null, pero después vamos a ver.

25
00:01:45,830 --> 00:01:47,120
Por ahora lo dejamos así.

26
00:01:47,660 --> 00:01:48,320
Guardamos.

27
00:01:48,450 --> 00:01:52,760
Bueno, obviamente marca error porque cambiamos de string a país.

28
00:01:52,970 --> 00:01:56,780
Entonces vamos a copiar país y modificamos lo quieten setter por acá.

29
00:01:57,140 --> 00:02:01,130
Entonces, qué país del tipo string y set país del tipo string?

30
00:02:01,580 --> 00:02:02,330
Guardamos.

31
00:02:02,420 --> 00:02:03,080
Estamos listo?

32
00:02:03,740 --> 00:02:03,860
Bien.

33
00:02:03,950 --> 00:02:05,180
Lo siguiente en el controlador.

34
00:02:05,600 --> 00:02:12,590
Actualmente tenemos el Jasmeet este map y también tenemos por acá un list que asigna países pero del

35
00:02:12,590 --> 00:02:13,100
tipo String.

36
00:02:13,220 --> 00:02:19,220
Ahora tenemos que modificar esto o crear un nuevo método para el que cree esta lista, pero el tipo

37
00:02:19,220 --> 00:02:20,300
list de país.

38
00:02:20,870 --> 00:02:23,690
Entonces vamos a copiar, por ejemplo, este model atributo.

39
00:02:23,930 --> 00:02:25,130
Lo pegamos acá arriba.

40
00:02:25,860 --> 00:02:29,480
Vamos a llamar por ejemplo países o lista países.

41
00:02:29,480 --> 00:02:32,960
Mejor lista y la P con mayúscula.

42
00:02:33,080 --> 00:02:33,980
Lista países.

43
00:02:34,370 --> 00:02:37,220
Es decir, una lista de objetos del tipo país.

44
00:02:37,640 --> 00:02:39,500
Acá también nombre método.

45
00:02:40,250 --> 00:02:40,640
Igual.

46
00:02:41,240 --> 00:02:42,410
Ven, vamos a trabajar.

47
00:02:43,960 --> 00:02:45,000
Para ordenar un poco.

48
00:02:49,220 --> 00:02:52,150
Y por cada uno, bueno, hay que crear la instancia de país.

49
00:02:52,790 --> 00:02:57,810
New New País bueno y recibe tres argumentos.

50
00:02:57,950 --> 00:03:04,430
Recordemos primero el Heidy, vamos a colocar por ejemplo España 1, después creo que era el código

51
00:03:05,150 --> 00:03:05,870
de buen nombre.

52
00:03:06,170 --> 00:03:10,370
Entonces esa cacería s vamos a importar país.

53
00:03:11,730 --> 00:03:12,060
Bien.

54
00:03:12,570 --> 00:03:15,720
Y así por cada uno nos vamos a copiar por cada uno.

55
00:03:18,340 --> 00:03:19,630
Después lo modificamos.

56
00:03:22,620 --> 00:03:23,700
Y tenemos que cerrar acá.

57
00:03:24,570 --> 00:03:25,800
Acá falta Lacoma.

58
00:03:37,100 --> 00:03:38,840
Faltó acá también una coma.

59
00:03:40,050 --> 00:03:41,910
Vamos a ordenar Format.

60
00:03:46,500 --> 00:03:48,420
Indica falta cerrar también un paréntesis?

61
00:03:48,670 --> 00:03:49,260
Parece que sí.

62
00:03:49,860 --> 00:03:52,080
Format, source, format.

63
00:03:53,970 --> 00:03:54,420
Bien.

64
00:03:56,150 --> 00:03:57,050
Bajamos.

65
00:04:01,980 --> 00:04:04,510
Cada vez tenemos que cambiar en vez de un list de Streak.

66
00:04:04,560 --> 00:04:07,290
Sería de país perfecto.

67
00:04:07,620 --> 00:04:09,990
Qué faltaría bueno cambiar acá los Heidy.

68
00:04:18,030 --> 00:04:22,830
Y también los códigos, por ejemplo, México.

69
00:04:23,400 --> 00:04:28,560
Acá tenemos Chile, Argentina, Perú.

70
00:04:29,700 --> 00:04:31,230
Colombia y Venezuela.

71
00:04:32,630 --> 00:04:35,970
Bien, ahí tenemos nuestro modelo, atributos, nuestra alito objeto.

72
00:04:36,120 --> 00:04:41,520
Bueno, esto perfectamente podría ser una consulta la acetato que retorna una lista de países, por

73
00:04:41,520 --> 00:04:46,980
ejemplo utilizando internet utilizando JPA con clases entity que están tapiadas a tablas del acetato

74
00:04:47,460 --> 00:04:52,200
que contenga el Heidy, que contenga el atributo código y el nombre país.

75
00:04:52,630 --> 00:04:56,790
Bien, entonces ahora tenemos que poblar con esta lista de países nuestro formulario.

76
00:04:57,570 --> 00:04:58,890
La lista select acá.

77
00:04:59,050 --> 00:05:08,070
Entonces el foreach acá sería lista países en vez de esto de acá mismo nombre con el cual lo tenemos

78
00:05:08,070 --> 00:05:16,920
acá, lista países, pero bien, acá tenemos el punto país, punto bueno, en vez de talio por ejemplo

79
00:05:17,010 --> 00:05:26,370
el nombre, queremos mostrar el nombre en el texto y como valor acá en el barrio, acá iría por ejemplo

80
00:05:26,460 --> 00:05:28,410
el Heidy País, punto Didí.

81
00:05:28,770 --> 00:05:34,800
Entonces por cada país de la lista países mostramos el nombre en la lista SELECT, pero el valor que

82
00:05:34,800 --> 00:05:36,750
se envía es el Heidy perfecto.

83
00:05:37,050 --> 00:05:41,010
Ahora vamos a probar, pero vamos a tener un detalle que tenga que solucionar.

84
00:05:42,060 --> 00:05:42,930
Levantamos.

85
00:05:47,960 --> 00:05:48,830
Y funciona perfecto.

86
00:05:49,280 --> 00:05:56,300
Se fijan incluso ver código fuente acá en Balu muestra Heidy que está perfecto y el nombre en el texto.

87
00:05:56,600 --> 00:05:57,680
Así que todo bien.

88
00:05:58,610 --> 00:06:04,550
El problema es que si enviamos, por ejemplo a cambio un error no puede convertir el string.

89
00:06:04,640 --> 00:06:09,530
En este caso el Heidy, porque recordemos que Leidy a pesar de que es numérico pero se envía como un

90
00:06:09,530 --> 00:06:12,890
string, no se puede convertir este estadi al objeto país.

91
00:06:13,310 --> 00:06:17,010
Se fijan y es porque estamos mapeando acá en el select.

92
00:06:17,240 --> 00:06:18,620
El field es país.

93
00:06:18,830 --> 00:06:21,680
Es decir, estamos poblando el valor.

94
00:06:21,770 --> 00:06:23,090
El valioso país.

95
00:06:23,120 --> 00:06:29,960
Punto Heidy en el campo, en el fiel país que es del tipo país por acá semejante.

96
00:06:30,710 --> 00:06:36,080
Entonces un tipo numérico string no coincide con el tipo país y por eso el error.

97
00:06:36,170 --> 00:06:41,120
Hay un mix match bueno, se puede solucionar de diferente forma usando un property editors que después

98
00:06:41,120 --> 00:06:41,720
lo vamos a ver.

99
00:06:41,780 --> 00:06:43,910
Pero una forma muy simple y muy fácil.

100
00:06:44,360 --> 00:06:51,380
Volvemos acá y en vez de mapear el fiel a país lo mapeados al atributo Heidy del objeto país.

101
00:06:51,650 --> 00:06:56,990
Decir usuario tiene país, pero país acá tiene el Heidy acá.

102
00:06:57,950 --> 00:07:02,600
Entonces mapeados a Leidy y si estamos mapeando les di acá.

103
00:07:02,600 --> 00:07:13,420
También tengo que validar por el Heidy y acá también y en el for que apunte acá a país punto y guárdanos.

104
00:07:13,650 --> 00:07:19,550
Es importante que el field lo más importante que el field esté mapeado al atributo Heidy del objeto

105
00:07:19,550 --> 00:07:21,650
país que a su vez es atributo del usuario.

106
00:07:21,830 --> 00:07:27,440
Ya sé que no hay ningún problema ahí se pueden solamente Leidy no todo el objeto, solamente Leydi en

107
00:07:27,440 --> 00:07:28,280
el objeto país.

108
00:07:28,640 --> 00:07:30,410
Nada más el código y el nombre, no?

109
00:07:30,500 --> 00:07:36,650
Aunque también podríamos escoger por ejemplo, que podemos colocar código código acá el value o value

110
00:07:36,680 --> 00:07:37,460
sea código.

111
00:07:37,520 --> 00:07:40,180
En fin, validar por código o puedc por Heidy.

112
00:07:40,430 --> 00:07:43,550
Bien, vamos a guardar lo siguiente en resultado.

113
00:07:44,590 --> 00:07:51,040
Bueno, como se pueblas solamente Leidy que colocábamos usuario puntu país, punto Heidy y guárdanos,

114
00:07:51,220 --> 00:07:58,810
volvemos, actualizamos, se fijan hoy ya no da error, por ejemplo si seleccionamos Mèxico que se Leydi

115
00:07:58,810 --> 00:07:59,200
2.

116
00:08:00,700 --> 00:08:05,140
12 ñón, alguna clave, algún correo?

117
00:08:06,420 --> 00:08:08,940
Cuenta 7 y alguna fecha?

118
00:08:10,110 --> 00:08:10,620
Enviar.

119
00:08:11,220 --> 00:08:12,750
Se fijan hoy día 2.

120
00:08:12,840 --> 00:08:13,890
Así que funciona perfecto.

121
00:08:13,980 --> 00:08:16,170
Está enviando el Heidy del país.

122
00:08:16,230 --> 00:08:23,700
Pero solamente Leydi, porque por ejemplo, si colocamos acá código o nombre, obviamente es nulo.

123
00:08:23,790 --> 00:08:24,450
Es vacío.

124
00:08:25,800 --> 00:08:33,360
De que solamente empleamos como value acá válido el Heidy acá y se puebla acá, por ejemplo, actualizamos.

125
00:08:34,570 --> 00:08:35,310
México.

126
00:08:45,280 --> 00:08:48,370
Se fijan, el código no se puebla solamente Leidy.

127
00:08:50,220 --> 00:08:51,180
Entonces lo dejamos como estaba.

128
00:08:51,600 --> 00:08:51,810
Bien.

129
00:08:51,870 --> 00:08:53,250
Ahora, qué pasa con la validación?

130
00:08:53,340 --> 00:08:54,030
Porque.

131
00:08:54,330 --> 00:08:58,740
Porque si volvemos y queremos validar no se valida.

132
00:08:58,800 --> 00:09:00,840
Por ejemplo, lo dejamos acá en seleccionar.

133
00:09:00,900 --> 00:09:01,530
Enviar.

134
00:09:01,620 --> 00:09:02,370
No se valida.

135
00:09:02,490 --> 00:09:03,330
No está valiendo.

136
00:09:03,780 --> 00:09:06,090
Bueno, para eso tenemos que validar el Heidy.

137
00:09:06,210 --> 00:09:07,560
Qué es lo que se envía acá?

138
00:09:07,700 --> 00:09:08,940
Ya lo que se está poblando acá.

139
00:09:09,030 --> 00:09:10,950
Entonces Leydi es lo que se valida.

140
00:09:11,040 --> 00:09:16,980
Por lo tanto en país acá validamos el Heidy, pero es del tipo Integer.

141
00:09:17,070 --> 00:09:20,040
Es una clase, un objeto y no es una cadena.

142
00:09:20,130 --> 00:09:20,790
No es un string.

143
00:09:21,030 --> 00:09:22,380
Si tiene que validar con Onur.

144
00:09:23,910 --> 00:09:26,880
Es decir, bueno, en realidad es un objeto que es el tipo de una clase.

145
00:09:27,390 --> 00:09:29,040
Pero siempre con Onur.

146
00:09:29,460 --> 00:09:30,360
Entonces guardamos.

147
00:09:30,420 --> 00:09:31,980
Pero tampoco se aplicar.

148
00:09:32,070 --> 00:09:36,360
Por ejemplo, si volvemos y trato tampoco se aplica.

149
00:09:36,570 --> 00:09:42,480
Bueno, aquí faltaría faltaría el usuario, porque el que se valida finalmente es el usuario, no el

150
00:09:42,480 --> 00:09:42,840
país.

151
00:09:43,290 --> 00:09:47,340
Pero acá podemos indicar con la anotación Valli que se valida también el país.

152
00:09:48,240 --> 00:09:51,840
Entonces con Baley indicamos que se validen los objetos relacionados.

153
00:09:52,200 --> 00:09:53,070
Importamos.

154
00:09:53,340 --> 00:09:54,090
Guardamos.

155
00:09:54,330 --> 00:09:55,730
Voy a bajar acá los import.

156
00:09:57,040 --> 00:09:57,740
Y ahora sí que sí.

157
00:09:58,810 --> 00:10:01,090
Enviamos no puedes Enol, se fijan?

158
00:10:01,180 --> 00:10:04,120
Entonces ahora está validando el país.

159
00:10:04,210 --> 00:10:07,000
Si colocamos, por ejemplo Chile enviar.

160
00:10:07,090 --> 00:10:08,140
Perfecto, se valida.

161
00:10:08,140 --> 00:10:08,680
Bien, bien.

162
00:10:08,770 --> 00:10:13,370
Ahora, qué pasa si quiero colocar el código en vez de Leidy, por ejemplo?

163
00:10:13,500 --> 00:10:14,470
Vamos a formulario.

164
00:10:14,620 --> 00:10:18,820
Bueno, tendré que modificar todo en vez de Heidy código.

165
00:10:19,990 --> 00:10:29,050
Yasi por CA1 acá sería bueno código, acá Leydi también había faltado el punto y ahí lo dejamos punto

166
00:10:29,050 --> 00:10:35,080
código, punto código, acá en Baldi, punto código, que es lo que se envía y se puede.

167
00:10:35,170 --> 00:10:37,540
Acá muy importante que todos sean siempre iguales.

168
00:10:37,660 --> 00:10:40,120
Fiel donde se puebloy y lo que se envía.

169
00:10:41,260 --> 00:10:44,350
Acá bueno, también cuando se valida, validamos el código.

170
00:10:45,490 --> 00:10:47,920
Resultado bueno, en vez de.

171
00:10:47,950 --> 00:10:48,280
País.

172
00:10:48,310 --> 00:10:54,610
Punto y visitilla, punto código, guardamos país, guardamos el formulario y qué faltaría.

173
00:10:54,670 --> 00:10:56,290
Bueno, en país.

174
00:10:56,470 --> 00:11:00,820
Acá tenemos que validar, quitamos este, lo quitamos o lo comentamos.

175
00:11:00,910 --> 00:11:07,580
Da lo mismo, lo voy a quitar acá también y tenemos que validar en código, pero es un string.

176
00:11:07,840 --> 00:11:10,180
Entonces sería Not empty.

177
00:11:11,950 --> 00:11:12,810
Importamos.

178
00:11:13,000 --> 00:11:13,750
Guardamos.

179
00:11:14,070 --> 00:11:15,490
Entonces, ahora sí que sí.

180
00:11:15,940 --> 00:11:19,750
Por ejemplo, enviar y Candem mensaje el campo requerido.

181
00:11:19,840 --> 00:11:20,820
Claro, porque es un string.

182
00:11:20,980 --> 00:11:22,420
Es decir, no puede ser vacío.

183
00:11:22,510 --> 00:11:23,140
Es requerido.

184
00:11:23,770 --> 00:11:27,130
Seleccionamos, por ejemplo, Argentina 12.

185
00:11:27,160 --> 00:11:29,560
Bueno, todo por defecto.

186
00:11:30,340 --> 00:11:35,180
Enviar ahora se envía a Argentina el código, no el Heidy.

187
00:11:35,320 --> 00:11:37,300
Entonces podemos decidir cuál es nuestra llave.

188
00:11:37,900 --> 00:11:38,650
Volvemos.

189
00:11:39,290 --> 00:11:44,710
Bueno, acá actualizamos ver código fuente y acá tenemos en Baley.

190
00:11:44,800 --> 00:11:46,410
Ahora es el código.

191
00:11:46,870 --> 00:11:48,250
Y siempre muestra el nombre país.

192
00:11:48,370 --> 00:11:55,370
Bien, pero como decía, siempre se envía un solo valor, el valor que estamos mapeando acá en el valio.

193
00:11:55,480 --> 00:12:00,490
Acá se envía ese valor y se puebla acá en el campo, en país.

194
00:12:00,520 --> 00:12:03,310
Punto el atributo, punto Heidy o punto código.

195
00:12:03,400 --> 00:12:05,260
Pero qué pasa si quiero enviar el objeto completo?

196
00:12:05,290 --> 00:12:08,740
Quiero enviar el Heidy, quiero enviar el código y el nombre?

197
00:12:08,740 --> 00:12:10,750
Quiero enviar el objeto completo peus.

198
00:12:10,840 --> 00:12:12,370
Bueno, en ese caso ahí está.

199
00:12:12,370 --> 00:12:18,490
Me obligado a utilizar un property editor y lo tendríamos que registrar con Init Pinder acá.

200
00:12:18,610 --> 00:12:24,880
Entonces tendríamos que crear nuestra propia clase Editors o Property Editors para obtener este código

201
00:12:24,940 --> 00:12:31,690
o estadi que estamos enviando y lo convertimos al objeto país correspondiente con todos sus datos,

202
00:12:31,780 --> 00:12:33,130
ya sea con una consulta glaseada.

203
00:12:33,340 --> 00:12:39,400
Tenemos el objeto país y lo asignamos con el set valeo, pero bueno, eso lo vamos a ver la siguiente

204
00:12:39,400 --> 00:12:46,000
clase, pero en la mayoría de los casos vamos a necesitar solamente el Heidy o el código el identificador,

205
00:12:46,060 --> 00:12:51,550
porque a través de ese código bueno se puede persistir la relación, se puede guardar y no necesario

206
00:12:51,550 --> 00:12:55,510
tener todos los geto completos, no es necesario el nombre ni los demás atributos.

207
00:12:55,630 --> 00:12:57,190
Eso es en la mayoría de los casos.

208
00:12:57,310 --> 00:13:00,700
Basta con enviar el código o el Heidy y el objeto.

209
00:13:00,760 --> 00:13:06,190
Con esa información se puede recuperar del Ayato o del medio persistente que estemos utilizando.

210
00:13:06,280 --> 00:13:08,710
Pero bueno, de todas formas la siguiente clase.

211
00:13:08,830 --> 00:13:14,470
Vamos a ver cómo recuperar este objeto completo utilizando un property editors.

212
00:13:14,560 --> 00:13:15,700
Otra alternativa.

213
00:13:15,850 --> 00:13:16,540
Nada más.

214
00:13:16,660 --> 00:13:17,380
Nos vemos.
