Java spring数据jpa@查询解析错误

Java spring数据jpa@查询解析错误,java,spring,jpa,spring-data,Java,Spring,Jpa,Spring Data,我今天发现了非常奇怪的虫子(?)。所以我只需要一个分页,通过两个字段搜索一个给定的输入。所需代码: @Query("select c from Customer c where upper(c.name) like %:search% or upper(c.number) like upper(%:search%)") Page<Customer> findByNameOrNumber(@Param("search") String search, Pageable pageable

我今天发现了非常奇怪的虫子(?)。所以我只需要一个分页,通过两个字段搜索一个给定的输入。所需代码:

@Query("select c from Customer c where upper(c.name) like %:search% or upper(c.number) like upper(%:search%)")
Page<Customer> findByNameOrNumber(@Param("search") String search, Pageable pageable);

然后,查询验证正常,但其行为不正确,具有上限(%:search%)的部分不工作

我为jpql找到了以下解决方案,但spring数据的情况并非如此

namedQuery.setParameter("code", "%" + this.value + "%"); 
无论如何,我有一个解决办法:

Page<Customer> findByNameContainingIgnoreCaseOrNumberContainingIgnoreCase(String name, String number, Pageable pageable);
Page findbynameContainingIgnoreCase或numbercontainingIgnoreCase(字符串名称、字符串编号、可分页);
但是,除了11个单词的方法,还有其他解决方案吗?
谢谢

只要c.name和c.number是有效字段,那么这看起来像是JPA提供者中的一个bug(当然,假设Spring在此期间没有更改查询…)
select c from Customer c where upper(c.name) like upper(%:search%) or upper(c.number) like %:search%
namedQuery.setParameter("code", "%" + this.value + "%"); 
Page<Customer> findByNameContainingIgnoreCaseOrNumberContainingIgnoreCase(String name, String number, Pageable pageable);