无法在本机查询 spring 引导中使用 "LIKE"

cant using "LIKE" in native query spring boot

我尝试通过查询获取用户订单:

 @Query(value = "SELECT * FROM ORDERS WHERE USER_ID = ?1 AND CAST(CREATE_AT AS NVARCHAR(100))  LIKE ?2 OR CAST(GRAND_TOTAL AS NVARCHAR(100))  LIKE ?2 OR CAST(STATUS AS NVARCHAR(100))  LIKE ?2"  , nativeQuery = true)
Page<Order> getOrdersByUserSearch(int userID, String searchS, Pageable pageable);

但它总是 return 空列表。我 运行 此代码在 SQL 服务器中并且有效 (?1 =2. ?2 = '2021-06-26')。 如果我尝试更改“不喜欢”而不是“喜欢”它 运行。 我不想使用查询(非本机)、命名查询或规范方法,因为它会出现更多错误。 有什么建议吗?

SQL like 查询需要 % 以及匹配值。在查询中 ordered parameters 的情况下,我们可以使用:

    @Query("SELECT m FROM Movie m WHERE m.rating LIKE ?1%")
    List<Movie> searchByRatingStartsWith(String rating);

点击here了解更多信息。

在您的情况下,查询字符串应如下所示:

SELECT * FROM ORDERS WHERE USER_ID = ?1 AND CAST(CREATE_AT AS NVARCHAR(100))  LIKE %?2% OR CAST(GRAND_TOTAL AS NVARCHAR(100))  LIKE %?2% OR CAST(STATUS AS NVARCHAR(100))  LIKE %?2%