HQL: ¿Es posible realizar una UNIÓN INTERNA en una subconsulta?
El diagrama de arriba es una versión simplificada de la estructura de la base de datos que utilizo para registrar ubicaciones de elementos en el tiempo. Escribí la siguiente consulta SQL que devuelve el inventario de artículos actual de cada lugar:
select *
from ItemLocationLog l
inner join
(select g.idItemLocationLog, max(g.dateTime) as latest
from ItemLocationLog g
group by g.idItem)
as i
on l.idItem = i.idItem and l.dateTime = i.latest
El problema que estoy teniendo es que quiero convertir a que HQL, pero no he encontrado la sintaxis para realizar una INNER JOIN en una subconsulta, y parece que esto no es compatible. ¿Hay alguna manera de convertir lo anterior a HQL (o un Criterio) o tendré que usar una consulta SQL estándar en este caso? Gracias.
¿Cómo sería esto? –
@CarlG Bueno sin pruebas y con el ejemplo de la pregunta ... algo a lo largo de las líneas de: 'seleccionar l de ItemLocationLog l donde l.dateTime = ( select max (g.dateTime) de ItemLocationLog g donde g.idItem = l.idItem ) ' – Arkaine55