代码之家  ›  专栏  ›  技术社区  ›  Helosze

Spring数据查询限制作为参数

  •  1
  • Helosze  · 技术社区  · 8 年前

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

    @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);
    

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

    1 回复  |  直到 8 年前
        1
  •  2
  •   Youcef LAIDANI    8 年前

    当您使用 ?1 或 :paramname 你不必像你那样在两个引号之间使用它们
    '%?1%' 和 '?2' 因此,您的查询应该如下所示:

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