Предикат для получения данных - PullRequest
0 голосов
/ 16 июня 2020

Я создал метод с использованием критерияBuilder для возврата определенных c данных. Это успешно, когда я запускаю его, но возвращаю пустой список. Ниже указан код

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();
}

1 Ответ

1 голос
/ 16 июня 2020

Я считаю, что единственной причиной может быть несоответствие регистра, поэтому попробуйте это

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

...