Java SpringDataJpa:多个包含IgnoreCase
我有下面这样的东西。基本上我想让所有的书在标题或描述中都包含某些关键词。Spring一直给我这个方法的错误。标题或描述的单一选择是可行的,但我只是不能把它们放在一起。我错过了什么 作品:Java SpringDataJpa:多个包含IgnoreCase,java,spring,spring-data,spring-data-jpa,Java,Spring,Spring Data,Spring Data Jpa,我有下面这样的东西。基本上我想让所有的书在标题或描述中都包含某些关键词。Spring一直给我这个方法的错误。标题或描述的单一选择是可行的,但我只是不能把它们放在一起。我错过了什么 作品: findBookByTitleContainingIgnoreCase(String keyWord) findBookByDescrContainingIgnoreCase(String keyWord) 不起作用: findbookbytletcontainingignorecase或escrconta
findBookByTitleContainingIgnoreCase(String keyWord)
findBookByDescrContainingIgnoreCase(String keyWord)
不起作用:
findbookbytletcontainingignorecase或escrcontainingignorecase(字符串关键字)
这将起作用:
findByTitleContainingIgnoreCaseOrDescrContainingIgnoreCase(String title, String descr);
然后,您可以将此方法称为bookRepository.findBytletContainingIgnoreCase或escrContainingIgnoreCase(关键字,关键字)
记住如何使用Spring数据JPA形成查询的一个简单方法是记住方法名最终会变成JDBCPreparedStatement
s。方法名称中的每个关键字(类属性)都成为PreparedStatement
中的一个参数。因此,在执行PreparedStatement
时,每个参数都必须绑定到一个值。因此,该方法必须具有相同数量的参数才能正确执行PreparedStatement
将此思想应用于问题时,您将看到方法名称有两个关键字-Title
和Descr
,但只有一个参数。因此,执行PreparedStatement
时,PreparedStatement
中的第二个参数保持未绑定状态;因此出现了错误。提供这两个参数可以解决问题
打开工作测试用例的示例代码。
findbookbytletcontainingignorecase或escrcontainingignorecase(字符串关键字,字符串关键字2)代码>修复了我的问题