我收到了意外的令牌'%'当使用这个JPQL查询时:在我的情况下,我使用upper函数,但它可以是任何人。
@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE %UPPER(:asunto)% ")
public Entity namedMethod(@Param("asunto") String asunto));
我需要添加LIKE%:param%来查找我文本中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
也没有运气。
提前致谢。
答案 0 :(得分:3)
解决了,有两种方法可以解决这个问题:
@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。