如何在JPA中加入ON? (Spring Data Jpa 1.4)

时间:2019-07-10 12:40:42

标签: spring-data-jpa

我有这个查询,我已经在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 :(得分:0)

JPA不适用于表,而适用于对象。如果要使用本机查询,则必须在定义中添加nativeQuery=true

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

否则,将根据您实体中的注释生成ON