estoy seguro de que estoy siendo estúpido, pero me parece que no puede imaginar éste ...APP izquierda se unen para encontrar las entradas no utilizadas
Tengo dos tablas:
departamento (DID, nombre) empleado (eid, primero, último, lo hizo)
tienen entidades correspondientes JPA entidades administradas Departamento y Empleado. El empleado tiene un campo de Departamento, el Departamento no mantiene una lista de Empleados. Lo que quiero hacer es encontrar todos los departamentos que no tienen empleados. Usar SQL antiguo simple esto es fácil con una combinación izquierda:
SELECT d.*
FROM department as d LEFT OUTER JOIN employee as e
ON d.did = e.did
WHERE e.did IS NULL
No veo cómo traducir esta consulta a JPQL. Todos los ejemplos que he encontrado para JPQL left join recorren el enlace a la inversa, por ejemplo.
SELECT e FROM Employee e LEFT JOIN e.departmert d
Mientras que necesito algo más como
SELECT d FROM Department d LEFT JOIN d.???? WHERE e.department IS NULL
pero el departamento no mantiene una referencia a sus empleados (en mi solicitud no es, obviamente, departamentos y empleados). ¿Es esto posible en JPQL?
brillante, perfecta respuesta gracias. Fuimos a la consulta en lugar de configurar la asignación. Estoy seguro de que la consulta no es muy eficiente, pero no se llamará con mucha frecuencia. – wobblycogs
¿Se debe usar "ESTÁ VACÍO" también cuando el artículo no es una colección, pero es solo una entidad de OneToOne con mappedBy? editar: sí, eso funciona. – Amalgovinus