检索数据的谓词

问题描述 投票:0回答:1

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

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();
}
java sql spring jpa predicate
1个回答
1
投票

我相信唯一的原因可能是大小写不匹配,所以请你试试这个。

cb.like(cb.lower(weekCycleEntity.get("name")), "%" + keyword.toLowerCase() + "%");

© www.soinside.com 2019 - 2024. All rights reserved.