Как сделать объединение с ON в jpa? (Spring Data Jpa 1.4) - PullRequest
0 голосов
/ 10 июля 2019

У меня есть этот запрос, который я пробовал в SQL, и он отлично работает

@Query("SELECT new es.abacor.elser.commons.empleado.EmpleadoList("+ 
        "empleado.id,persona.nombre,persona.apellido1,persona.apellido2,persona.dni,persona.email)" + 
        " FROM rrhh.empleado as empleado" + 
        " INNER JOIN commons.persona AS persona ON empleado.persona_comun = persona.id" + 
        " WHERE" + 
        " empleado.persona_comun is not null" + 
        " and empleado.borrador = false" + 
        " and empleado.deleted is null" + 
        " and empleado.fecha_fin_contrato is null" + 
        " order by persona.nombre,persona.apellido1,persona.apellido2 asc")
public List<EmpleadoList> allEmpleadosList();

Но я получаю следующую ошибку при выполнении в моем проекте

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ON near line 1, column 217 [SELECT new es.abacor.elser.commons.empleado.EmpleadoList(empleado.id,persona.nombre,persona.apellido1,persona.apellido2,persona.dni,persona.email) FROM rrhh.empleado as empleado INNER JOIN commons.persona AS persona ON empleado.persona_comun = persona.id WHERE empleado.persona_comun is not null and empleado.borrador = false and empleado.deleted is null and empleado.fecha_fin_contrato is null order by persona.nombre,persona.apellido1,persona.apellido2 asc]

Кто-то знает, что я делаю неправильно, я не знаю, что делать дальше.

1 Ответ

0 голосов
/ 10 июля 2019

JPA не работает с таблицами, он работает с объектами.Если вы хотите использовать собственные запросы, вы должны добавить nativeQuery=true к определению:

@Query(nativeQuery=true, <SQL-Statement>)

, в противном случае класс ON будет сгенерирован из аннотаций в ваших сущностях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...