我已经尝试过以下查询:

@Query(value = "SELECT distinct `id`,`customer name`,`customer number` FROM My_Data WHERE `customer number` like '%"
        + ":customerNumber" + "%'", nativeQuery = true)
public List<MyData> findDistinctByCustomerNumberContainingIgnoreCase(
        @Param("customerNumber") String customerNumber);


当我运行这个
我得到:


  java.lang.IllegalArgumentException:具有该位置的参数[1]
  不存在异常。


由于表格的某些限制,我想要一个本机查询。

最佳答案

您已将占位符放在括号内,并且引擎将其视为纯字符串。

如果仅用%括起来,引擎将知道解析在解析的查询中添加括号的情况:

@Query(value = "SELECT distinct `id`,`customer name`,`customer number` FROM My_Data
       WHERE `customer number` like %:customerNumber%", nativeQuery = true)

07-25 23:52