使用此 JPQL 查询时,我得到意外的标记“%”:在我的例子中,我使用了上层函数,但它可以是任何人。
@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)'%' ")
意外的 token :UPPER
@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE '%UPPER(:asunto)%' ")
意外的 token :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。
关于java - 错误意外 token '%' : JPQL - LIKE %FUNCTION(:namedParam)%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48926162/