Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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 用于检索数据的谓词_Java_Sql_Spring_Jpa_Predicate - Fatal编程技术网

Java 用于检索数据的谓词

Java 用于检索数据的谓词,java,sql,spring,jpa,predicate,Java,Sql,Spring,Jpa,Predicate,我已经创建了一个使用criteriaBuilder返回特定数据的方法。当我运行它但返回一个空列表时,它是成功的。 下面是代码 public List<WeekCycleEntity> searchOnWeekCycles(String keyword) { EntityManager em = createEntityManager(); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<WeekCycle

我已经创建了一个使用criteriaBuilder返回特定数据的方法。当我运行它但返回一个空列表时,它是成功的。 下面是代码

public List<WeekCycleEntity> searchOnWeekCycles(String keyword) {

EntityManager em = createEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<WeekCycleEntity> cq = cb.createQuery(WeekCycleEntity.class);



Root<WeekCycleEntity> weekCycleEntity = cq.from(WeekCycleEntity.class);


Predicate findName = cb.like(weekCycleEntity.get("name"), "%" + keyword + "%");
Predicate findExecutedBy = cb.like(weekCycleEntity.get("executedBy"), "%" + keyword + "%");
cq.where(findName, findExecutedBy);



TypedQuery<weekCycleEntity> query = em.createQuery(cq);
return query.getResultList();
}
public List searchOnWeekCycles(字符串关键字){
EntityManager em=createEntityManager();
CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery cq=cb.createQuery(WeekCycleEntity.class);
Root weekCycleEntity=cq.from(weekCycleEntity.class);
谓词findName=cb.like(weekCycleEntity.get(“name”),“%”关键字+“%”;
谓词findExecutedBy=cb.like(weekCycleEntity.get(“executedBy”),“%”“+”关键字+“%”;
cq.where(findName,findExecutedBy);
TypedQuery=em.createQuery(cq);
返回query.getResultList();
}

我认为唯一的原因可能是大小写不匹配,因此请尝试此方法


cb.like(cb.lower(weekCycleEntity.get(“name”)),“%”“+”关键字.toLowerCase()+“%”

这意味着您的条件与任何记录都不匹配。在运行代码之前,我确保它具有匹配记录。很高兴知道。好的,请接受答案并投票。谢谢