【发布时间】:2019-06-04 14:28:12
【问题描述】:
我正在尝试执行查询,但得到了 处理程序执行导致的解决异常:org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.QueryException: Space is not allowed after parameter prefix ':' 。 我按照这里的建议做了 How can I use MySQL assign operator(:=) in hibernate native query? 和这里 : Hibernate exception on encountering mysql := operator 但一样。 休眠版本 5.2.17.Final
ClientRepository.java
@Repository
public interface ClientRepository extends JpaRepository<Client, Long>, JpaSpecificationExecutor<Client> {
@Query( value = "select * from client where center_id in\n" +
"(select id from (select * from center order by parent_center_id, id) center_sorted, (select @pv=:centerId) initialisation\n" +
"where find_in_set(parent_center_id, @pv) and length(@pv:=concat(@pv, ',', id))) or center_id=:centerId;" ,nativeQuery = true)
Page<Client> findAllByCenterId(@Param("centerId") Long centerId, Pageable pageable) ;
}
【问题讨论】:
-
老实说,您混合了参数和原始字段。您可以先将查询分开并清理整个语句吗?谢谢
标签: spring hibernate jpa native-sql