Saltar navegación

20260120 JPA_7 - 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 27 de enero de 2026 por Raquel G.

1 visualizaciones

Descargar la transcripción

Entonces, en algún sitio, será en el DAO, por supuesto, porque los JPQLs están en el DAO, porque es la parte que toca los datos. 00:00:01
En algún sitio habrá que poner esta JPQLs, esta sí que tiene un WHERE, WHERE e.departamento.id sea igual a 2.id departamento. 00:00:09
Aunque bueno, aquí puedo poner el nombre que quiera, porque luego lo fijo. 00:00:28
y de 00:00:31
vale, entonces 00:00:33
y esta query va siempre 00:00:35
tendrá que ir acompañada 00:00:37
como selecciona un e 00:00:39
esta query tendrá que ir acompañada 00:00:40
de empleado.class 00:00:43
vale 00:00:45
porque las queries 00:00:47
aquí veis llevan siempre 00:00:49
cuando creamos 00:00:52
la query 00:00:54
la sentencia jpql 00:00:54
y al ladito 00:00:57
la clase a la que devuelves. 00:00:59
Entonces, esta query de aquí 00:01:03
la tendremos que poner en algún sitio. 00:01:06
¿Por qué todo el rato? 00:01:11
Así. 00:01:14
La tendremos que poner en algún sitio 00:01:15
que vaya acompañada de esto. 00:01:16
Luego no pega que yo meta esto 00:01:19
en departamento de implementación, 00:01:21
porque en departamento de implementación 00:01:23
la propiedad tipo 00:01:24
es departamento.class 00:01:28
aquí es que he puesto departamento.class 00:01:30
pero habría sido más bonito si hubiera puesto tipo 00:01:32
¿verdad? porque tipo es 00:01:33
la propiedad tipo que aquí está oculta 00:01:35
pero que está heredando de implementación DAO 00:01:38
entonces 00:01:40
en departamento 00:01:41
implementación DAO no pega 00:01:43
porque aquí no va a ir departamento.class 00:01:45
ahí va a ir empleado.class 00:01:48
entonces sería más bonito si yo me hago 00:01:49
un empleado 00:01:52
esta misma de aquí, departamento 00:01:54
de implementación, la voy a copiar, pero luego le cambio el nombre, porque yo quiero 00:01:56
una como esta, pero de empleado ahora, entonces esta, hacemos una copia y una pega aquí, 00:02:01
y la llamamos empleado, empleado implementación DAO, la llamamos, ahora, esta empleado implementación 00:02:10
Dao 00:02:29
Cuidado 00:02:30
Recibe empleado 00:02:33
Punto class 00:02:36
Es lo que recibe 00:02:38
Empleado punto class 00:02:42
Vale 00:02:43
Ah, no le he puesto el extens 00:02:44
Ah, bueno, claro, es que el extens 00:02:49
Es de empleado 00:02:51
Vale 00:02:53
Empleado, hereda de la implementación 00:02:55
Pero era para empleado 00:02:58
Recibe esto en su variable tipo 00:02:59
Y ahora este método es el que no quiero. El que quiero ahora ya sí que es public list empleado, get empleados de un departamento por el ID del departamento. 00:03:01
y ahora 00:03:28
ahora ya si que será el 00:03:33
query bla bla bla 00:03:35
poniendo esa query 00:03:37
y esto voy a 00:03:39
lo podéis 00:03:42
copiar de aquí 00:03:46
y ahora lo cambiamos 00:03:47
y ahora 00:03:49
este me va a devolver 00:03:56
una lista de 00:03:59
empleado 00:04:01
empleado 00:04:03
Y ahora la query era esta otra 00:04:05
Que había puesto yo aquí 00:04:08
La query es esta 00:04:09
Y aquí puedo poner 00:04:11
En lugar de empleado.class voy a poner tipo 00:04:21
Que queda más bonito 00:04:24
Vale, entonces, a ver 00:04:25
Fijo 00:04:34
Mi query 00:04:36
Seleccioname todos los empleados 00:04:38
Donde el departamento 00:04:41
Sea este, le fijo 00:04:43
El departamento id para que sea este de aquí 00:04:45
GetSingResult, no 00:04:47
lógicamente porque aquí no es un único resultado aquí es un punto de tres un 00:04:49
list todos los resultados y ahora ya esto este nombre es muy feo aquí lo 00:04:57
llamo así no porque ahí no es tan feo porque es que en volver en una opción a 00:05:07
una lista, me duele hasta a mí. 00:05:28
devolver una lista 00:05:31
es que 00:05:34
mi gran duda, es probable 00:05:36
que esto te devuelva una lista vacía, no un null. 00:05:38
Sino que el resultado de este 00:05:40
JPQL no lo sé, habría que comprobarlo. 00:05:42
Si no hay nadie, te devuelva una 00:05:44
lista vacía, que es diferente a null. 00:05:46
Entonces meterlo en un optional ahí. Pero habría que 00:05:48
comprobarlo, porque no estoy segura que ese select 00:05:50
devuelve un null o lista vacía. Yo creo que lista 00:05:52
vacía, pero no lo sé. 00:05:54
Entonces ahora ya tenemos 00:05:56
El DAO en el sitio correcto 00:05:57
Y ahora aquí 00:05:59
Implementamos 00:06:00
El que acabamos de hacer 00:06:03
Y ya está 00:06:05
Empleado 00:06:06
Implementación DAO 00:06:10
Donde le pasamos el entity manager 00:06:12
Y ahora ya está 00:06:23
Return 00:06:38
DAO. 00:06:39
Empleado 00:06:41
Get empleados 00:06:42
Retun 00:06:46
Que he hecho mal 00:06:50
Y de Depto 00:06:52
Vale, entonces 00:06:53
Vamos a comprobar rápidamente si en el caso de que no tenga 00:07:00
Devuelve nul o lista vacía 00:07:03
Y así 00:07:04
¿Qué me falta por cerrar? 00:07:05
El en.close 00:07:07
Claro, tienes toda la razón 00:07:08
Claro, sí, sí, sí 00:07:21
Qué tontería más gorda 00:07:23
Sí, sí, sí, lo tengo que guardar, claro 00:07:24
qué espabilados estáis 00:07:26
para luego digáis que vuestro futuro va a ser negro 00:07:31
vale, vale, no, eso lo dice tu amigo 00:07:34
que dice todo el rato 00:07:40
yo me voy a morir de hambre 00:07:41
estoy deprimido porque el futuro es negro 00:07:43
eso lo dice él mucho más que yo 00:07:46
no, lo de son una mierda jamás 00:07:47
lo que dije es que el futuro estaba chungo 00:07:54
eso sí 00:07:56
Hombre, no era para tanto 00:07:57
Ahora ya sí 00:08:07
Ahora ya sí 00:08:12
Ahora ya sí lo tenemos bien hecho 00:08:13
Vamos ya a probarlo 00:08:21
Desde el main 2, dejamos unos métodos 00:08:23
Planteados para que hagáis en vuestros ratos libres 00:08:24
Y ya está 00:08:27
A ver, le dije que en algún momento 00:08:29
Pero hoy en particular 00:08:40
Pues nada 00:08:42
A ver 00:08:43
No os morís de la ansiedad 00:08:49
Vale 00:08:54
Vamos a probar 00:08:55
Voy a quitarle al departamento 3, por ejemplo, le voy a quitar empleados para solucionar esa duda que nos tiene, bueno, por ejemplo, en el 10 no tengo a nadie, ¿verdad? En el departamento 10 no tengo a nadie. Y hay un departamento 10. Vale, pues voy a ver los empleados del departamento 10 a ver si me da nulo o lista vacía. Eso, eso, porque si no, no nos podemos ir. 00:08:57
Pero es que es todo de boquilla 00:09:23
No sé por qué ocurre 00:09:30
¿No os pasa a vosotros? 00:09:34
Es que tienes el índice de la derecha 00:09:35
Más rápido que el de la izquierda 00:09:37
Será, vale 00:09:39
Vale, entonces 00:09:40
Esto tengo es 00:09:44
Recuperar empleados 00:09:47
Departamento 00:09:49
Y habíamos dicho que en el 10 yo no tengo nada 00:09:50
Y ahora 00:09:52
Vamos a 00:09:57
La prueba de fuego 00:10:00
Que es esta 00:10:05
A ver si me sale vacío 00:10:08
O me sale un pom 00:10:13
Vale 00:10:16
Entonces esto para no liar 00:10:25
Lo quito de ahí 00:10:27
Mi intuición era cierta 00:10:29
No te devuelve un null sino una lista vacía 00:10:42
Es que sería muy cutre 00:10:45
Si devolviera un null el jpql 00:10:46
Con un sel 00:10:48
vale, no devuelve nada 00:10:49
porque no tengo a nadie, pero si le doy el empleado 00:10:51
en el 1 sí que trabaja gente 00:10:53
en el 1 sí trabajan 00:10:55
manías, ya sé que son manías 00:10:58
de vieja, lo sé 00:11:03
pero el play de arriba me pone muy 00:11:05
nerviosa hasta que no me asegure de que 00:11:07
lo que está en el historial es 00:11:09
que normalmente en el historial se queda lo último 00:11:10
que has ejecutado, entonces 00:11:13
le das al play y ya está, pero 00:11:15
Ah, listo 00:11:17
Mi programa está a prueba 00:11:36
de Null Pointer Exception 00:11:39
Vale 00:11:40
Sí, no, es que no sabía 00:11:45
pero, a ver, intuía que no podía ser 00:11:48
tan frágil 00:11:50
¿Vale? Entonces, estos métodos que hemos hecho aquí nosotros, como veis, no nos hayan cuajado. Es que no han necesitado transacción. De hecho, no hemos hecho ningún begin transaction con el em ni commit. 00:11:52
No las hemos hecho porque como solo eran consultas 00:12:13
Si hiciéramos métodos 00:12:16
Que ya sí que hicieran 00:12:17
Tendríamos que hacerlo con la transacción 00:12:19
Entonces vamos a dejar planteados aquí 00:12:21
Unos métodos 00:12:23
Exacto 00:12:25
Vamos a dejar planteados aquí 00:12:28
Uy, qué miedo me das 00:12:29
Me dan tus preguntas 00:12:33
Uf, entonces no me pregunto 00:12:34
Pero no tengo ni idea 00:12:37
Dime 00:12:38
Me he creado un DAD empleado 00:12:39
porque en mi arquitectura 00:12:56
de aquí, yo estoy usando 00:12:58
JPQL 00:13:00
y a JPQL le tengo que pasar aquí el tipo 00:13:01
entonces yo podría poner ahí 00:13:04
empleado 00:13:06
podría meter esto en el DAO 00:13:08
y poner ahí empleado.class 00:13:10
y ya está 00:13:12
claro, pero has llamado 00:13:14
desde un método a otro 00:13:30
en la misma línea horizontal 00:13:32
Claro, pero la has llamado 00:13:34
Sí, en un ratín 00:13:43
¿Quién es? 00:13:45
Ah, creía que era Alejandra 00:13:47
Que ha venido a... 00:13:48
¿Por uno de vosotros? 00:13:51
No, igual a vos 00:13:52
No sé 00:13:54
Vale, ¿qué es lo que has hecho? 00:14:01
Espera un momento que paremos aquí. 00:14:05
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:
1
Fecha:
27 de enero de 2026 - 12:59
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
14′ 10″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
67.48 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid