spring-data-jpa - 如何在jpa中加入ON?( Spring Data Jpa 1.4 )
问题描述
我有这个查询,我在 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]
有人知道我做错了什么,我不知道该怎么办了。
解决方案
JPA 不适用于表,它适用于对象。如果要使用本机查询,则必须添加nativeQuery=true
到定义中:
@Query(nativeQuery=true, <SQL-Statement>)
否则,ON
将从您的实体中的注释生成子句
推荐阅读
- fpga - Quartus:从外部文件添加依赖项
- sql - 我想在laravel中总结数组结果中的一个字段
- android - 使用getPageTitle在kotlin android中找不到字符串资源
- jquery - Jquery/ASP 中的未知未捕获类型错误
- react-native - 响应本机与样式化组件的响应行为
- dataframe - 错误的 x 刻度标签 matplotlib
- material-design-in-xaml - Root DialogHost 给出一个空白窗口
- java - 依赖默认字段初始化 - 编程风格不好?
- r - 从多个页面抓取 html 节点
- jquery - 离子范围滑块不适用于中心标签