错误意外标记“%”: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。
我在使用这个 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。