JavaSpring,类似JPA的带有通配符的表达式
我正在努力在JavaSpring应用程序中使用Like表达式创建JPQL语句。我的目标是实现简单的不区分大小写的搜索函数 我的代码应该返回一个公司列表,该列表的名称中包含一个关键字,如下所示:JavaSpring,类似JPA的带有通配符的表达式,spring,hibernate,jpa,jpql,Spring,Hibernate,Jpa,Jpql,我正在努力在JavaSpring应用程序中使用Like表达式创建JPQL语句。我的目标是实现简单的不区分大小写的搜索函数 我的代码应该返回一个公司列表,该列表的名称中包含一个关键字,如下所示: List<Company> companies = em.createQuery("select cmp from JI_COMPANIES as companies where UPPER(cmp.name) LIKE :keyWord", Company.class)
List<Company> companies = em.createQuery("select cmp from JI_COMPANIES as companies where UPPER(cmp.name) LIKE :keyWord", Company.class)
.setParameter("keyWord","%" + keyWord.toUpperCase() + "%").getResultList();
return companies;
似乎我的查询被翻译为cmpn_name='name',而不是使用like表达式 您可以查看最佳实践,这是我的错,因为我不了解Spring数据JPA库是如何工作的 我尝试创建myCompanyRepository的自定义实现(myCompanyRepository扩展了JpaRepository、CompanyRepositoryCustom) 我上面提到的代码位于我的CompanyRepositoryCustomImpl类中,该类实现CompanyRepositoryCustom接口。但是,我使用了方法名“findCompaniesByName(字符串名)”。JPA自动从这个方法名创建一个查询,而我的实现没有被使用
Hibernate: select ... /* all my parameters */ ... where company0_.CMPN_NAME=?