Здесь я нашел, как обернуть такой запрос запрос в CriteriaQuery (ссылка).
Код: Выделить всё
CriteriaQuery
cq = cb.createQuery(Pet.class);
Root pet = cq.from(Pet.class);
Join owner = cq.join(Pet_.owners);
cq.select(pet);
cq.orderBy(cb.asc(owner.get(Owner_.lastName),owner.get(Owner_.firstName)));
Проблема в том, что все методы в репозитории ожидают спецификации:
Код: Выделить всё
T findOne(Specification spec);
Код: Выделить всё
public static Specification
statusSetEqual(final Status... statuses) {
return new Specification() {
@Override
public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
return cb.not(root.get("status").in((Object[]) statuses));
}
};
}
Подробнее здесь: https://stackoverflow.com/questions/372 ... cification