我正在尝试使用本机查询执行此类操作:
@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作为参数?谢谢你的回答。
答案 0 :(得分:2)
当您使用?1
或:paramname
时,您不必在两个引号之间使用它们,就像您'%?1%'
和'?2'
一样您的查询应如下所示:
select * from systems
where UPPER(system_name) like UPPER(CONCAT('%', ?1, '%')) ORDER BY system_name LIMIT ?2
//------------------------------^-----^-----^----^---^-------------------------------^^