错误意外标记“%”:JPQL - LIKE %FUNCTION(:namedParam)%

Error Unexpected token '%' : JPQL - LIKE %FUNCTION(:namedParam)%

我在使用这个 JPQL 查询时得到了意外的标记“%”:在我的例子中,我使用了 upper 函数,但它可以是任何人。

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE %UPPER(:asunto)% ")
public Entity namedMethod(@Param("asunto") String asunto));

我需要添加 LIKE %:param% 以查找文本中参数的任何巧合。

尝试过:

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE '%'UPPER(:asunto)'%' ")

意外令牌:UPPER

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE '%UPPER(:asunto)%' ")

意外令牌:UPPER

那里也没有运气。

提前致谢。

已解决,有两种方法可以解决这个问题:

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE '%' || UPPER(:asunto) || '%' ")

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE CONCAT('%', CONCAT(UPPER(:asunto),'%')) ")
EDIT-- Thanks to @Nicolau: 
@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE UPPER(CONCAT('%',:asunto,'%'))")

两者都有效!

感谢@M.Prokhorov。