Closed KristiyanVasilev96 closed 1 year ago
:-) Виновен, предвид недоглеждането на Javadoc. Което е пример как като не прочетеш нещо добре може в следващата версия да се учудиш. Нека да го преработим с нещо подобно, което би било коректно:
@Override
public Predicate toPredicate(Root<OfferEntity> root,
CriteriaQuery<?> query,
CriteriaBuilder cb) {
final List<Predicate> predicates = new ArrayList<>();
if (searchOfferDto.getMinPrice() != null) {
predicates.add(cb.greaterThanOrEqualTo(root.get("price"), searchOfferDto.getMinPrice()));
}
if (searchOfferDto.getMaxPrice() != null) {
predicates.add(cb.and(cb.lessThanOrEqualTo(root.get("price"), searchOfferDto.getMaxPrice())));
}
if (searchOfferDto.getModel() != null && !searchOfferDto.getModel().isEmpty()) {
predicates.add(cb.and(cb.equal(root.join("model").get("name"), searchOfferDto.getModel())));
}
return cb.and(predicates.toArray(new Predicate[0]));
}
Поздрави, Л.
Здравей, Лъчо. От известно време имам проблем със сърч бара. Прегледах няколко пъти записа от миналогодишното издание на курса, но не се получава филтрацията. Когато филтрирам по някаква цена, излизат всички резултати. https://github.com/KristiyanVasilev96/LaptopFinder