JpaSpecificationExecutor JOIN + ORDER BY в спецификацииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JpaSpecificationExecutor JOIN + ORDER BY в спецификации

Сообщение Anonymous »

У меня есть запрос с использованием JOIN и ORDER BY, и я хочу использовать его в своем репозитории с помощью Criteria Api.

Здесь я нашел, как обернуть такой запрос запрос в 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)));
С другой стороны, я нашел несколько примеров использования Criteria Api в сочетании с JpaRepository (пример).

Проблема в том, что все методы в репозитории ожидают спецификации:

Код: Выделить всё

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

}
Итак, с одной стороны я знаю, как создать CriteriaQuery, а с другой стороны, мне нужна спецификация, построенная на основе предиката, и я не могу понять, как для анализа CriteriaQuery в спецификации/предикате.


Подробнее здесь: https://stackoverflow.com/questions/372 ... cification
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»