Spring数据查询限制为参数

时间:2017-11-13 17:22:37

标签: java spring hibernate spring-data spring-data-jpa

我正在尝试使用本机查询执行此类操作:

@Query(value = "select * from systems where UPPER(system_name) like UPPER('%?1%') ORDER BY system_name LIMIT '?2'", nativeQuery = true)
List<System> findAllBySystemNameWithLimit(String systemName, int limit);

但它不起作用。是否可以使用limit作为参数?谢谢你的回答。

1 个答案:

答案 0 :(得分:2)

当您使用?1:paramname时,您不必在两个引号之间使用它们,就像您'%?1%''?2'一样您的查询应如下所示:

select * from systems 
   where UPPER(system_name) like UPPER(CONCAT('%', ?1, '%')) ORDER BY system_name LIMIT ?2
   //------------------------------^-----^-----^----^---^-------------------------------^^