Saltar navegación

20260219 MongoDB_5 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 20 de febrero de 2026 por Raquel G.

2 visualizaciones

Descargar la transcripción

By código 00:00:00
Grater 00:00:06
Dan 00:00:09
En inglés lo he escrito bien 00:00:10
Grater Dan, es así 00:00:13
Bueno, es que código no es un 00:00:14
Bueno, pero los strings tienen 00:00:21
Orden alfabético, entonces funcionaría 00:00:23
También, yo creo 00:00:25
Porque tienen un orden natural 00:00:26
Bueno, un orden natural no, un orden puesto en el comparable 00:00:28
Claro 00:00:31
Entonces 00:00:31
Entonces, jugando con el nombre 00:00:33
Se pueden crear muchas consultas propias 00:00:36
Que el código sea mayor que no sé qué 00:00:38
Y así un listado de cosas 00:00:41
Que uno se puede poner a buscar, a ver lo que tiene 00:00:43
Vale, particularidad de Mongo 00:00:45
Que dentro 00:00:47
Tenemos subdocumentos 00:00:49
Y a raíz de subdocumentos 00:00:51
Que 00:00:53
Las bases relacionales están en tablas apartes 00:00:54
Aquí lo tenemos dentro 00:00:57
Entonces nosotros podemos buscar 00:00:59
Por el 00:01:01
Los documentos que tengan 00:01:02
En un array que cumpla no sé qué 00:01:04
Los participantes, por ejemplo 00:01:07
Entonces, ¿recordáis que cuando 00:01:09
Estábamos viendo las condiciones 00:01:10
Puedes buscar directamente su documento 00:01:12
En la lista de sus documentos 00:01:15
Bueno, sí, pero para eso tienes el find 00:01:17
Y luego ya en el servicio 00:01:23
Devuelves la 00:01:25
Claro, lo devuelves 00:01:26
vale, entonces aquí por ejemplo 00:01:28
recordáis, teníamos 00:01:30
es que esto que he metido 00:01:32
a ver, alguno que haya metido aquí con cosas 00:01:33
este 00:01:36
por ejemplo 00:01:37
que aquí tengo un array simple 00:01:42
de participantes 00:01:44
y otro array de objetos 00:01:45
pues recordad que la búsqueda 00:01:48
por array 00:01:50
simples, pues aquí podíamos hacer un documento 00:01:52
que era, búscame 00:01:54
aquellos en los cuales 00:01:56
participantes 00:01:58
este 00:02:02
es la consulta que me devuelve 00:02:08
un documento en los cuales 00:02:11
dentro de su array 00:02:13
participantes hay alguno que se llame 00:02:15
así 00:02:17
alguno que se llame así 00:02:17
este por ejemplo, si yo aquí lo filtro 00:02:20
los que me han devuelto tienen 00:02:24
a este 00:02:27
Vale 00:02:27
Los que me ha devuelto tienen a este 00:02:30
Sí, cualquiera de ellos 00:02:32
Vale, entonces esto también lo podemos 00:02:34
Poner como método propio 00:02:37
¿Vale? Como método propio 00:02:38
Pues sería aquí 00:02:41
Por ejemplo 00:02:42
Pues cógeme todas 00:02:44
Las tareas en las que 00:02:46
Participe 00:02:49
Find by 00:02:50
Participantes 00:02:55
Containing 00:02:59
Del propio nombre, del containing 00:03:04
Ya saldría 00:03:06
Claro, tiene un montón de juegos 00:03:08
Con el nombre, vale 00:03:12
Este creo que es así, lo tengo aquí apuntado 00:03:13
Para no confundirme 00:03:16
Sí, vale 00:03:17
Entonces, que queremos hacer and de cosas 00:03:20
Pues también 00:03:24
Por ejemplo, quiero encontrar 00:03:26
A ver, aquí 00:03:28
Todas las 00:03:29
Tareas en las que participe 00:03:32
Alguien 00:03:35
Que 00:03:35
Aquí en tarea que tenía yo 00:03:37
En las que participe alguien 00:03:40
Que se llamen de tal manera 00:03:42
Claro, entonces, pero es el and de dos cosas 00:03:45
¿Vale? Pues puedo poner el and 00:03:49
A lo bestia 00:03:51
Así, de esta manera 00:03:51
Este sería 00:03:54
Devuélveme todas las tareas 00:04:02
Tarea 00:04:04
find 00:04:07
by título 00:04:10
hemos dicho 00:04:11
se llama título porque es encontrar 00:04:12
por título, que la otra es 00:04:15
and, que el participante 00:04:17
lo contenga, pues este es 00:04:20
participantes containing 00:04:21
me lo hago ahí con el and en el nombre 00:04:22
si, por el orden del and 00:04:25
esto lo podríamos probar 00:04:34
haciendo el servicio correspondiente 00:04:42
metiéndolo en el método y funcionaría 00:04:44
que ya lo he probado yo, lo podéis creer 00:04:46
que aún así queremos hacer alguna query extraña 00:04:47
algo que no encontramos un método aquí 00:04:51
que ya es raro, que queramos hacer una consulta 00:04:53
que no podamos adaptarla a un método 00:04:55
pues nos hacemos nuestra query 00:04:57
a ver, no sabría decirte 00:04:59
normalmente, no, una cosa es bases de datos 00:05:16
orientadas a documentos 00:05:18
y otras las no SQL 00:05:19
no sabría decirte 00:05:22
si todas son consideradas 00:05:24
orientadas a documentos 00:05:26
no sabría decirte 00:05:28
pero con la generación 00:05:30
sí, cuando 00:05:31
cuando salió la alternativa 00:05:34
las bases de datos SQL 00:05:37
la alternativa vino de la mano de orientadas a 00:05:37
documentos tipo XML 00:05:40
tipo JSON 00:05:42
claro, existía 00:05:43
la base de datos 00:05:46
que en su momento tuvo cierta 00:05:47
exist 00:05:50
era como MongoDB pero con documentos XML 00:05:50
Usaba el lenguaje de consultas 00:05:54
Pues el xpad 00:05:57
Y todo eso 00:05:57
Vale 00:05:59
Entonces aquí por ejemplo 00:06:01
¿Qué podemos dejar para una consulta? 00:06:03
Los or, por ejemplo un or 00:06:05
Podemos dejarlo porque 00:06:08
El or no sé si existe 00:06:09
Como título propio 00:06:14
Como método propio 00:06:15
Vamos a preguntárselo 00:06:16
¿A quién? ¿A este? 00:06:19
Nombre del método 00:06:22
Bongo repositorio 00:06:42
Voy a poner que es más rápido 00:06:49
A ver, sí 00:06:50
Igual que podemos el on, podemos poner el off 00:07:04
Vale, entonces es que se me ocurren muy pocas 00:07:06
Consultas 00:07:09
O cosas que no puedas hacer 00:07:10
Y quien dice find dice 00:07:13
Delete, también puedes borrar 00:07:14
Con ese criterio 00:07:17
Entonces, aún así tú quieres hacer una consulta 00:07:18
en particular, pues la plantas 00:07:21
la plantas aquí en la query, por ejemplo, a ver que ejemplos 00:07:23
nos da, pues eso, esto es 00:07:25
un or de los dos 00:07:27
un or, bueno 00:07:29
y puedes mezclar, mirad, se puede 00:07:30
mezclar and y or 00:07:35
se puede mezclar 00:07:37
and y or 00:07:39
pero según él, que nos creemos 00:07:41
que sea verdad 00:07:43
el and y la prioridad 00:07:44
como las sumas y las 00:07:46
multiplicaciones 00:07:50
recordad siempre la prioridad aritmética 00:07:51
multiplicaciones son and 00:07:53
sumas son or 00:07:55
siempre tiene más prioridad las multiplicaciones 00:07:57
respecto a las sumas 00:07:59
vale, ya que estamos 00:08:00
nos dice algo más interesante 00:08:04
usando query más control 00:08:05
vale 00:08:09
bueno, pues si aún así 00:08:10
esto de criterio es otra forma de hacer criterios 00:08:13
diferente de un documento que hemos pasado 00:08:15
directamente porque es que no tenemos tiempo 00:08:17
vale, pero tú puedes hacer 00:08:19
un objeto criterio con un documento y tienes 00:08:21
muchísima más flexibilidad 00:08:23
Puedes hacer muchas más cosas 00:08:24
¿Vale? 00:08:26
Bueno, pues entonces 00:08:31
Si nosotros queremos hacer nuestro propio criterio 00:08:32
Podemos hacerlo 00:08:33
Por ejemplo, aquí 00:08:34
¿Qué consulta se nos ocurre con las tareas 00:08:35
Que nos pueda 00:08:37
Apetecer hacer? 00:08:38
Pues 00:08:48
Todas aquellas que 00:08:49
Item que tiene 00:08:51
Que tengan un 00:08:55
Item con un nombre 00:09:02
En concreto 00:09:03
Todas que tengan un ítem, que sea lo que sea 00:09:05
Pues entonces esto sería 00:09:07
A ver, si nos sale de corrido 00:09:08
Esto 00:09:11
El documento 00:09:12
Se llama ítems 00:09:15
Pues sería ítems 00:09:17
¿Dónde estamos? 00:09:19
Ah, no, aquí 00:09:21
Sería 00:09:22
Ítems, y como ítems son documentos 00:09:24
Pues tengo que hacer aquí 00:09:28
El element 00:09:29
¿Verdad? Que tenga algún ítem 00:09:30
Que cumpla 00:09:33
Elen match 00:09:35
De qué 00:09:37
De nombre 00:09:40
Item nombre 00:09:43
Se llama nombre 00:09:48
Nombre 00:09:49
Y aquí el parámetro 00:09:51
Que sea 00:09:55
El parámetro 00:09:55
Como lo ponemos 00:09:57
Recordad en JPA 00:09:58
Cuando poníamos la query en JPA 00:10:00
¿Recordáis cómo lo poníamos? 00:10:02
Dos puntos 00:10:07
Dos puntos y un nombre 00:10:08
¿Vale? Dos puntos y un nombre 00:10:09
La interrogación la poníamos en JDBC 00:10:11
Pues aquí ponemos 00:10:14
Interrogación 00:10:17
Si es el primer parámetro, cero 00:10:19
Si es el segundo, uno 00:10:22
Si es el segundo, dos 00:10:23
¿Vale? 00:10:25
Aquí solo tenemos uno 00:10:27
Pues esto de aquí 00:10:29
Pero ¿quién lo decide? 00:10:30
porque al final esos son un montón de 00:10:35
ya hay una cosa que es medio establecida 00:10:37
que es lo primero que se cree 00:10:39
es JPA 00:10:41
no, pero JPA lo primero que se creó, hace el favor 00:10:41
le faltó 00:10:45
la botella lanzada 00:10:49
sería JDBC en todo caso 00:10:50
ya, pero JDBC lo hizo muy bien 00:10:53
puso interrogaciones, lo que yo no sé es por qué JPA 00:10:57
JPA puso dos puntos 00:10:59
necesitaba darle un nombrecito 00:11:01
Pero podría haber puesto interrogación y el nombrecito 00:11:03
Y este ha vuelto a la interrogación 00:11:06
Pero no le gusta nombrecito 00:11:08
Sino posicional 00:11:11
Exacto 00:11:12
Entonces aquí ya podríamos poner 00:11:17
Pues devuélveme todas las tareas 00:11:19
O bórrame si pongo delete 00:11:22
Lo que sea 00:11:23
Find 00:11:24
Nombre de ítem 00:11:33
Entiendo que sí 00:11:36
No te lo puedo jurar por Dios ni por la Virgen 00:11:51
Pero entiendo que sí 00:11:54
¿Vale? Entonces aquí el nombre de ítem 00:11:55
Pero nombre ítem 00:11:58
No tenemos ningún campo que sea nombre ítem 00:12:00
Podríamos tener uno que fuera nombre 00:12:01
Y un subcampo ítem 00:12:04
Entonces ahí tendríamos confusión 00:12:05
Pero 00:12:07
En este caso es nombre ítems 00:12:08
En todo caso, con lo cual aquí no habría 00:12:11
Sí, este está ponciado 00:12:13
Y un query dice, es que tú quieres esto 00:12:19
Claro, no te lo voy a hacer yo si tú ya me lo has dado hecho 00:12:21
Vale 00:12:24
Vale 00:12:25
El en match 00:12:29
Eso, muy bien 00:12:34
Vale, eso sí, he puesto bien 00:12:36
La consulta, no lo sé, vamos a probarla 00:12:38
Vamos a probarla aquí 00:12:40
A ver si la he puesto bien 00:12:41
Vamos a ponerla con un 00:12:43
Nombre de ítem 00:12:49
Le voy a poner 00:12:50
Crear controller 00:12:53
Ah, bueno, claro 00:12:55
Es que como aquí he mezclado, he hecho de todo 00:12:59
A ver si tengo aquí alguna que sea nombre 00:13:01
Ah, espérate, que es que 00:13:03
Sí, pero bueno 00:13:07
Claro, que se llama 00:13:08
Descripción en tarea 00:13:10
Aquí, o sea, en 00:13:12
No, es que se está llamando nombre 00:13:13
Vale, vale, no es que hayamos mezclado 00:13:15
Es que yo esta base de datos es de 00:13:18
De otro proyecto 00:13:19
Y estos son antiguos, entonces 00:13:21
Seguro que tengo alguna por nombre 00:13:23
Y si no, voy a poner esta primera 00:13:27
Nombre 00:13:29
Empezar, venga, esta 00:13:41
Entonces, a ver si me encuentra 00:13:44
Alguno que nombre 00:13:47
Empezar 00:13:49
Y porque 00:13:51
¿Qué me falta? 00:13:56
¿Me falta cerrar una? 00:14:00
No, no 00:14:05
Nombre empezar 00:14:07
Es que me falta una llave 00:14:10
Vale, entonces con nombre empezar 00:14:11
Eje, efectivamente 00:14:15
Me devuelve el único documento 00:14:17
Que tiene un ítem 00:14:20
Cuyo nombre es empezar 00:14:23
Seguramente 00:14:25
Por eso siempre es buena idea probarlo aquí 00:14:28
Porque aquí 00:14:29
No, sí 00:14:31
Vale, esto está bien 00:14:33
Vamos a probar esta 00:14:38
Entonces 00:14:40
Si yo ya tengo el método del repositorio 00:14:44
Ya podría hacerme aquí una tarea 00:14:47
Y hombre, vamos a hacer una tarea 00:14:49
De que o 00:14:58
Porque esto ya es lo último que vamos a hacer 00:14:58
Y ya no 00:15:03
Entonces, hombre, ya que estamos 00:15:04
GetTareas 00:15:06
Por 00:15:09
GetTareas 00:15:10
Por 00:15:13
NombreItem 00:15:14
GetTareas 00:15:17
Por nombre de item 00:15:19
StreamNombreItem 00:15:20
Entonces 00:15:23
Primero cojo las tareas 00:15:24
List de tarea 00:15:26
Y list de tarea va a ser 00:15:28
Estas tareas va a ser 00:15:32
Mi repo punto 00:15:36
El método que me falta 00:15:37
Find by nombre item 00:15:39
Era esta, ¿verdad? 00:15:42
La que he hecho 00:15:43
Vale, ya tengo el método del servicio 00:15:44
Pero vamos a devolver solo de esas tareas 00:15:46
Devolver las tuneadas 00:15:49
Entonces nos vamos a hacer la clase 00:15:50
El record tarea DTO 00:15:53
El record tarea DTO 00:15:55
Me hago 00:15:59
Estoy aquí, en mi DTO 00:16:00
Me hago el record 00:16:03
Tarea DTO 00:16:06
Entonces de esta consulta 00:16:10
Quiero mostrar solo 00:16:12
Quiero mostrar solo 00:16:13
El título 00:16:16
La descripción y los participantes 00:16:19
Pero una sola línea 00:16:21
No como string 00:16:22
Entonces de mi tarea DTO 00:16:24
Quiero mostrar 00:16:29
El título 00:16:30
La descripción 00:16:32
Descripción 00:16:37
y el stream con los participantes 00:16:39
uno tras otro 00:16:41
participantes 00:16:42
si pero mire teo 00:16:45
yo lo tuneo y lo cambio como quiera 00:16:47
los voy a poner uno tras otro 00:16:48
entonces ahora voy a hacer la conversión 00:16:50
vale pues entonces ahora que quiero hacer con este 00:16:52
pues tareas 00:16:57
mi tareas 00:16:57
vale stream 00:17:00
cada elemento de mi lista tareas 00:17:05
lo quiero convertir 00:17:09
en un 00:17:13
Hasta luego 00:17:14
Chao 00:17:20
Cada elemento de mi lista de tareas 00:17:21
Lo voy a convertir en un DTO 00:17:24
Entonces 00:17:27
Para eso me voy a hacer 00:17:28
La lista de participantes 00:17:30
Que es 00:17:32
De mi X 00:17:33
Me cojo los participantes 00:17:36
Los serializo 00:17:38
Los 00:17:41
Colecto 00:17:42
Los pongo todos juntos 00:17:44
y me hago esto 00:17:46
joining con el delimitador 00:17:48
esto de aquí 00:17:54
vale, a ver, ¿qué estamos 00:17:55
haciendo aquí? 00:18:00
vale, a ver 00:18:03
el método collect 00:18:06
es un método que estaba pensado 00:18:07
para coger 00:18:10
todos los elementos 00:18:12
e integrarlos en una 00:18:13
única variable, en mi caso va a ser una variable 00:18:16
string 00:18:18
este podemos hacer el colet entero 00:18:18
que al principio del curso lo hicimos 00:18:38
es una bifunción 00:18:39
un colector, el elemento 00:18:42
y luego como integro 00:18:45
el elemento al colector 00:18:47
el colector podría ser un stream builder 00:18:48
pero si lo que queremos es que es una 00:18:50
acción que se hace muy a menudo 00:18:52
tengo un montón de elementos y poderlos todos juntos 00:18:54
en un string, es decir, concatenarlos 00:18:56
pues eso lo puedo hacer directamente 00:18:58
pasándole a coler 00:19:01
esto 00:19:03
que esto ya me da esa 00:19:04
si yo le paso a coler esto 00:19:05
esto ya directamente 00:19:08
me hace la acción de 00:19:10
conectármelos todos 00:19:12
en un único string con el separador 00:19:14
que a mí me dé la gana poner ahí 00:19:16
¿Pero tiene que ser string? 00:19:17
No, lo hará el string 00:19:20
Claro, hará el string 00:19:21
vale, entonces con esto ya tengo a todos los partidos 00:19:23
de una fila, pues esto se lo voy 00:19:26
a setear al tarea DTO 00:19:28
entonces 00:19:30
me voy a hacer aquí un 00:19:32
estoy haciendo un montón de líneas 00:19:34
que podríamos ahorrarnos, pero bueno, para que quede claro 00:19:38
este tarea DTO 00:19:40
sería un tarea 00:19:44
DTO 00:19:46
Sí, o sea 00:19:48
¿Qué pasa? 00:19:55
Vale, entonces sí, lo que pasa es que lo estoy separando 00:19:58
Para ir haciendo 00:20:02
Claro, entonces a este ya le puedo hacer 00:20:03
El t de teo le hago 00:20:06
Descripción 00:20:09
No, no era descripción, era participantes 00:20:12
Participantes 00:20:14
Le pongo esto 00:20:16
Todo de aquí 00:20:18
Todo esto de aquí 00:20:19
Lo meto aquí 00:20:21
Con lo cual este me 00:20:23
Sobra 00:20:31
Vale 00:20:32
Aunque 00:20:34
Aquí algo 00:20:36
Ah, vale 00:20:38
Pero 00:20:43
Vale, pero aún así aquí me falta algo 00:20:44
Colet 00:20:47
Aquí tendré que ir sacando 00:20:51
Colet 00:20:53
Este de aquí 00:20:54
Pero este ya es un string 00:20:57
Es uno solo 00:21:02
Claro, pero get participantes 00:21:04
Pero es que 00:21:06
La propiedad participantes de este 00:21:08
Es un string 00:21:11
Claro, entonces 00:21:11
No, es un string 00:21:14
Tarea de to 00:21:17
Participantes 00:21:17
Entonces el error me está viniendo 00:21:19
Aquí, ah, porque constructor 00:21:23
sin parámetros, el constructor sin parámetros 00:21:25
no lo tiene el record 00:21:27
si, bueno, pero 00:21:27
claro, si, si, ya, no, pero me refiero que 00:21:34
aparte, ah, si 00:21:36
o sea, tiene constructor sin parámetros el record 00:21:38
bueno, pues vamos a seguir poniendo 00:21:40
este ya está, entonces ahora me falta 00:21:41
el tdto.descripción 00:21:44
este es igual a 00:21:47
x.getDescripción 00:21:48
y el 00:21:50
tdto.titulo 00:21:52
Este es 00:21:56
X.get 00:21:58
Título 00:22:01
Vale, el DTO ya lo tengo construido al completo 00:22:04
Entonces ya lo puedo devolver 00:22:07
Para mi map 00:22:08
Devuelvo mi TDTO 00:22:10
Vale 00:22:13
Entonces esto ya está 00:22:14
Y ahora 00:22:16
Este es 00:22:17
Tareas.string 00:22:22
Esto me va a tu list 00:22:25
que me da una list 00:22:26
de tareas de teo y este lo devuelvo 00:22:28
y este es el que devuelvo 00:22:31
vale, y me sigue 00:22:35
saliendo esto, pero porque 00:22:37
el record no tiene tarea de teo sin parámetros 00:22:39
era lo que yo os decía, que me estáis liando 00:22:41
pero esto es lo que tiene parámetros a los atributos 00:22:43
claro 00:22:45
es lo que quiero hacer 00:22:47
claro, por eso digo que como tiene sin parámetros 00:22:48
que entonces tengo que 00:22:51
hacerlo con estos parámetros 00:22:53
claro, pero es lo que estabais diciendo desde el principio 00:22:54
yo también 00:22:57
Claro, es que como tú me has dicho 00:22:57
Pero si lo ves en multicomas te quitas 00:23:00
Será que el récord tiene sin parámetros 00:23:01
Pero no tiene 00:23:03
El récord tiene constructor sin parámetros 00:23:04
Pues aquí porque me dice que está indefinido 00:23:08
¿Seguro que tiene sin parámetros el récord? 00:23:10
Yo creo que tiene solo con parámetros 00:23:20
Getter 00:23:22
Setter con el nombre cambiado 00:23:24
Tu string has equals 00:23:26
Y lo has hecho récord, ¿no? 00:23:27
Lo has hecho class 00:23:30
Pues no sé 00:23:31
Bueno, pues entonces yo aquí lo que tengo que hacer 00:23:33
Es un new 00:23:37
Bueno, da igual 00:23:37
Como no me deja 00:23:43
Hacer un costo sin parámetros 00:23:45
Me hago este y ahora ya le meto las cosas 00:23:46
Que las cosas son 00:23:48
¿Por qué orden van? 00:23:50
Van por título, descripción y participantes 00:23:52
Pues entonces este 00:23:55
Aquí 00:23:56
Siguiente parámetro 00:23:59
Descripción 00:24:02
Aquí 00:24:04
Y siguiente 00:24:09
Participantes, que es este 00:24:11
Aquí 00:24:13
Con lo cual, esto me sobra 00:24:20
Y este de aquí también me sobra 00:24:23
Vale, ya está 00:24:25
No, lo he cambiado de sitio 00:24:28
Espera, voy a bajar el coleta aquí abajo 00:24:31
Para que se vea mejor 00:24:34
Es decir, me he creado 00:24:36
Un nuevo para cada tarea 00:24:38
Me he creado una nueva tarea 00:24:40
DTO con sus parámetros 00:24:42
Con su título, con su descripción 00:24:44
Y con sus participantes propuestos en fila 00:24:46
Es lo que he hecho, ¿vale? 00:24:49
Crearme un DTO y que esa lista de tareas 00:24:50
Devuelva al servicio 00:24:52
Y ahora el controller lo devuelve 00:24:53
¿Vale? 00:24:54
Venga, pues ahora al controller 00:25:01
Que este sí que será un get 00:25:04
Controller, ponemos aquí los get 00:25:06
Al principio todos 00:25:12
GetMapping 00:25:13
URL no ambigua 00:25:17
Esto era 00:25:20
Tareas 00:25:21
No, pero hombre, eso no lo va a poner la URL 00:25:23
Tareas por nombre de 00:25:28
De ítem 00:25:29
Venga, vamos, yo que sé 00:25:31
Tareas nombre es un parámetro que es el 00:25:34
El ítem en particular 00:25:37
Este 00:25:39
Por nombre de ítem 00:25:40
Entonces 00:25:43
Este método me va a dar una lista de 00:25:44
Tarea DTO 00:25:47
Tareas by item 00:25:49
Porque se me ha olvidado 00:25:55
Tareas item 00:26:00
Y este tiene una variable de path 00:26:03
Path variable 00:26:05
Que es item 00:26:07
Y este lo que tiene que hacer ahora ya 00:26:12
Es devolver 00:26:18
Devolver del servicio 00:26:19
getTareas 00:26:23
por nombre item 00:26:25
pasándole item 00:26:27
tengo que poner el nombre de la clase 00:26:29
efectivamente 00:26:35
y aquí 00:26:36
esto no aplicable 00:26:38
para item, ah bueno claro 00:26:41
es que esto es un string 00:26:43
perdón, esto es un string 00:26:44
vale, bueno 00:26:46
creemos que no nos hemos equivocado pero no sabemos 00:26:48
a esta url 00:26:51
recogerá este nombrecito 00:26:53
que hay aquí 00:26:55
llamará a getTareas 00:26:56
con ese nombrecito 00:26:59
este de aquí llama al método 00:27:00
con la query que nos hemos inventado 00:27:08
a ver si 00:27:10
ese método con la query funciona 00:27:12
me da las tareas 00:27:14
y yo las mapeo 00:27:15
¿Cómo lo has arreglado, profe? 00:27:17
¿Cómo he arreglado el qué? 00:27:20
Lo del mapeo 00:27:21
¿A este método o al otro? 00:27:22
No sé a cuál te refieres 00:27:27
Bueno, o sea, es que como no tenía 00:27:28
O me decía que no tenía 00:27:31
Constructor 00:27:33
Sin parámetros 00:27:35
Pero a ti sí te lo encuentra, dices 00:27:36
Sí, el tema es que estabas haciendo 00:27:39
Que estabas pasando los parámetros 00:27:41
A los atributos 00:27:43
No, estaba seteando 00:27:45
Me había creado 00:27:47
Una tarea T y seteaba 00:27:50
Lo estaba haciendo bien 00:27:51
Si hubiera tenido 00:27:53
Claro, pero el nombre no se llama set 00:27:54
en los récords no se llama set 00:27:57
se llama punto el nombre sin más participante 00:28:00
estaba haciendo un seteo 00:28:02
me estaba instanciando sin parámetros 00:28:03
y luego seteando, lo estaba haciendo bien 00:28:06
si hubiera tenido constructor sin parámetros 00:28:07
pero 00:28:09
me dice que no tiene 00:28:11
y yo juraría 00:28:13
que no tienen 00:28:15
los récords dan 00:28:17
constructores 00:28:19
sin parámetros 00:28:22
Entonces el problema era ese 00:28:28
Que no tenía constructores con parámetros 00:28:30
Pero estaba haciendo el set 00:28:32
El set claro que lo tiene 00:28:34
¿Cómo que no? 00:28:36
Pero si es lo que tenía justo hecho 00:28:42
Pues ese era mi problema 00:28:44
Tarea de TOT 00:28:46
Igual a new 00:28:50
Tarea de TOT 00:28:52
Esto es lo que tenía 00:28:54
Y me decía, este constructor no existe 00:28:55
Porque no tiene 00:28:59
Constructor sin parámetros 00:29:00
Y luego, si hubiera existido 00:29:02
Yo puedo setear sin problemas 00:29:05
Porque para eso están los setters 00:29:06
Lo que pasa es que los setters de los records 00:29:08
No tienen el set antes 00:29:10
Ah, perdón, perdón, perdón 00:29:12
Que no tienen, no, no, no 00:29:15
No tienen set, los records no tienen set 00:29:17
Solo tienen get 00:29:18
Que sí, que sí, que sí, ahora te entiendo lo que decías 00:29:19
Claro, o sea, no tienen set 00:29:22
Solo tienen get 00:29:24
¿vale? entonces yo, vale 00:29:25
00:29:26
tienes razón 00:29:28
efectivamente lo que estaba puesto después 00:29:29
era una cosa absurda 00:29:33
tienes razón, pero esto 00:29:35
lo que no entiendo es por qué te va a ti 00:29:37
o sea, lo tengo delante 00:29:39
¿has creado un reto? 00:29:42
00:29:46
¿no? 00:29:46
no sé todo 00:29:47
la magia de la informática 00:29:47
y seguro que es 00:29:59
esa tarea de peor, ¿verdad? 00:30:03
o sea, tú lo abrimos por aquí 00:30:04
y ahí, ¿verdad? 00:30:06
no lo entendería 00:30:10
pero la JDC 00:30:11
es que lo han tenido 00:30:12
que han debido actualizar ahora 00:30:17
hace 15 minutos 00:30:19
que sí, que sí 00:30:21
que lo otro ha sido 00:30:24
escribir a lo tonto 00:30:26
sin pensar 00:30:29
que estaba escribiendo sin pensar 00:30:30
y lo tengo una burrada, efectivamente 00:30:32
no se puede setear 00:30:34
una pregunta 00:30:37
¿se usan como récord o se usan también como objetos? 00:30:38
no, no, no 00:30:41
si quieres lo básico, un récord 00:30:42
porque es muy cómodo 00:30:44
claro, si quieres luego además hacer código 00:30:45
hacer otro tipo de cosas 00:30:48
lo añades 00:30:50
es que tiene un Java trucado 00:30:51
pues no lo sé 00:30:52
Es que no sé, no sé qué ha pasado 00:30:56
A ver si tú estás en una versión 00:30:58
Porque claro, las versiones de Java 00:31:00
Van metiendo cositas 00:31:03
Entonces vete tú a saber 00:31:05
Si tú tienes, por ejemplo 00:31:07
Las últimas versiones de Java 00:31:08
Ya no hace falta poner el public static void main string 00:31:10
Puedes poner el main a palo seco 00:31:14
Por ejemplo 00:31:17
Claro, entonces 00:31:18
Las últimas versiones de Java 00:31:21
Van metiendo cositas 00:31:22
Que de repente te dejan así un poco como desconcertado 00:31:24
Vete tú a saber 00:31:27
Con qué versión de JDK estás tú 00:31:28
Ya, ya, ya 00:31:30
Pero se supone que algo tienen que incorporar 00:31:37
En cada nueva versión 00:31:40
Pues se sacan eso de la manga y ya está 00:31:41
Bueno, switches con stream llevan ya bastante 00:31:42
Bueno, el hacerlo con el simbolito este 00:31:49
Y poner bloques de código 00:31:53
No sé a qué te refieres 00:31:55
Bueno, pues no sé, averigua 00:32:08
Averigua por qué a ti te deja y no te lo dices 00:32:09
¿Ya lo has averiguado? 00:32:11
Clean y update project 00:32:13
Y ya te falla 00:32:15
Ah, vale 00:32:16
O sea, no te daba error porque estaba mal 00:32:19
Vale, vale 00:32:21
Vale, no, no, a ver 00:32:23
Lo mío estaba mal, pero lo mío es que era una burrada 00:32:26
Pero cuando se habla 00:32:28
Se admite de hacer burradas 00:32:30
Porque yo no, de verdad que mi cabeza no piensa 00:32:32
Cuando estoy en clase, porque no me da tiempo 00:32:34
Yo no sé hablar y pensar 00:32:35
Entonces, me cuesta un montón 00:32:36
Hablar y pensar 00:32:40
Bueno, a ver, algo pienso 00:32:42
Porque consigo hilar una palabra con otra 00:32:44
Pero mi mente no está funcionando 00:32:46
En pleno rendimiento 00:32:48
Pero sí, obviamente era una burrada 00:32:50
Lo que estaba poniendo, claro 00:32:54
Estaba seteando en un get 00:32:56
Vale, bueno, pero ya estamos de acuerdo 00:32:57
Aunque esto ya sí está bien para todo el mundo 00:33:00
Ahora ya sí 00:33:02
Bueno, pues entonces vamos a ver 00:33:03
Si nos hace 00:33:07
Pero ¿y cómo nadie me dice 00:33:08
Además de él 00:33:13
La burrada que estaba poniendo? 00:33:14
Tú me lo estabas diciendo también 00:33:16
Que no podías meter nada en el constructual 00:33:18
Efectivamente, vale, pues bueno 00:33:20
Venga, vámonos al localhost 00:33:36
Y esto era 00:33:41
No eran tareas 00:33:48
Esto era 00:33:49
Esto que lo vamos a cambiar 00:33:51
Por 00:34:01
Se me ha quedado la doble barra 00:34:04
Por el ítem 00:34:11
Empezar 00:34:14
Vamos a cambiarlo por el ítem 00:34:19
Empezar 00:34:22
Venga, ¿será capaz de hacerme esta consulta? 00:34:25
Todos aquellos que tengan un ítem 00:34:29
Que sea empezar 00:34:32
Vale, no me encuentra el recurso 00:34:35
La ruta no la he puesto bien 00:34:40
Vamos a ver si no he puesto bien la ruta 00:34:42
Tareas, ítem, empezar 00:34:44
Vamos a ver 00:34:47
Tareas, ítem 00:34:48
Y aquí esto 00:34:53
Sí, la he puesto bien 00:34:55
Ah, me falta API 00:34:58
Me falta API 00:35:01
Vale, me falta el API 00:35:02
Toma ya 00:35:05
Vale, magnífico 00:35:10
Ahora sí, me ha sacado todas las consultas 00:35:12
Con los participantes 00:35:14
Así 00:35:16
De verdad que no tiene, no puede ser 00:35:18
Que no tenga participantes 00:35:20
Sí, porque los tenía vacíos 00:35:22
Vale 00:35:24
Vale, pues muy bien 00:35:33
Muy estupendo 00:35:42
Bueno, pues aquí sí que 00:35:43
Cerramos un poquito los contenidos 00:35:48
¿Vale? 00:35:50
Sí, entonces 00:35:55
Os voy a subir al aula virtual 00:35:56
Vamos a ver 00:35:59
Pero si ya casi habéis acabado 00:36:01
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Segundo Curso
Subido por:
Raquel G.
Licencia:
Todos los derechos reservados
Visualizaciones:
2
Fecha:
20 de febrero de 2026 - 13:18
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
36′ 07″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
153.48 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid