Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:意外标记“%”:类似JPQL的%函数(:namedParam)%_Java_Jpa_Spring Data Jpa_Jpql - Fatal编程技术网

Java 错误:意外标记“%”:类似JPQL的%函数(:namedParam)%

Java 错误:意外标记“%”:类似JPQL的%函数(:namedParam)%,java,jpa,spring-data-jpa,jpql,Java,Jpa,Spring Data Jpa,Jpql,使用此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

使用此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)'%' ")
意外标记:上限

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE '%UPPER(:asunto)%' ")
意外标记:上限

@Query("SELECT s FROM Entity s WHERE UPPER(s.asunto) LIKE '%UPPER(:asunto)%' ")
那里也没有运气


提前感谢。

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

@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。

就这样谢谢@M.Prokhorov!Simpler:@QuerySELECT s可能与suppers.asunto类似于UPPERCONCAT“%”的实体s重复:asunto,“%”