like 查询 Hibernate Query 中的两个参数

Two parameters in like query Hibernate Query

我有一个名为 'uniqueCode' 的字段,它使用城市和 salesPersonId 以及一些计数构成。 格式: uniqueCode = City + SalesPersonId + 101 示例: AHM1101=AHM+1+101 现在,我想要一个方法,它将采用 city 和 salespersonId 以及 return me max of uniqueId。 我写了这样的查询:

@Query("SELECT max(s.uniqueCode) FROM ServiceProvider s WHERE s.uniqueCode LIKE :cityCode:salesPersonId%")
public String maxUniqueCode(@Param("cityCode") String cityCode, @Param("salesPersonId") Long salesPersonId);

但是它给出了 Unexpected token: salesPersonId 的错误。 编写此查询的正确方法是什么。 谢谢

like 操作数需要一个带有撇号的字符串值。 例如,如果您要查找 AHM1%,编写此查询的正确方法是 - SELECT max(s.uniqueCode) FROM ServiceProvider s WHERE s.uniqueCode LIKE 'AHM1%'

尝试将这些添加到您的搜索字符串周围,看看是否有帮助。

尝试使用 CONCAT(:cityCode, :salesPersonId, '%') 将您的参数加入单个字符串,它应该可以工作:

@Query("SELECT max(s.uniqueCode) FROM ServiceProvider s WHERE s.uniqueCode LIKE CONCAT(:cityCode, :salesPersonId, '%')")
public String maxUniqueCode(@Param("cityCode") String cityCode, @Param("salesPersonId") Long salesPersonId);