2016-12-29 4 views
0

Я не могу найти никаких документов о том, как относиться к этой ситуации. Я продолжаю получать следующие ошибки:HQL: Путь, ожидаемый для присоединения! не удалось разрешить свойство

org.hibernate.QueryException: could not resolve property: id_alumno_origen 
of: dm.model.tramite.TrasladoInterno 
.... 
antlr.SemanticException: Path expected for join! 

Я использую следующий запрос, хотя я нашел какое-то решение, ссылаясь на отсутствие ссылок на поля в случае JOIN + ON, я не заладилась:

from pe.edu.innovaschools.dm.model.tramite.TrasladoInterno a 
    JOIN gen_sede b ON b.id = a.id_sede_destino 
    JOIN aca_grado c ON a.id_grado_destino = c.id 
    WHERE a.tipo = 'INTERPERIODO' 
     AND a.estado IN ('ACEP' , 'PEND') 
     AND a.id_periodo_origen = :PERIODOORIG 
     AND a.id_periodo_destino = :PERIODODEST 
GROUP BY a.id_sede_destino , b.nombre , a.id_grado_destino , c.nombre_ps , a.estado 

ответ

0

On HQL Я предпочитаю использовать неявное обозначение JOIN (больше раз явное JOIN может привести к ошибке). Если вы используете GROUP BY, вы должны применять проекцию на ваш SELECT, поэтому попробуйте следующее:

select a.id_sede_destino, b.nombre, 
    a.id_grado_destino , c.nombre_ps , a.estado 
from pe.edu.innovaschools.dm.model.tramite.TrasladoInterno a, 
gen_sede b, 
aca_grado c 
WHERE b.id = a.id_sede_destino 
    AND a.tipo = 'INTERPERIODO' 
    AND a.id_grado_destino = c.id 
    AND a.estado IN ('ACEP' , 'PEND') 
    AND a.id_periodo_origen = :PERIODOORIG 
    AND a.id_periodo_destino = :PERIODODEST 
GROUP BY a.id_sede_destino, b.nombre, 
    a.id_grado_destino , c.nombre_ps , a.estado 
+0

Действительно, я стараюсь код допер, что HQL должен быть в состоянии знать, что a.id_grado_destino = c.id является увязкой условие между таблицами. Но все та же проблема. Пока я просто использую предложение SQL для извлечения данных. – jfzr