Как отсортировать поток в обратном порядке с помощью Speedment

У меня есть таблица базы данных, которую я хочу отфильтровать, а затем отсортировать в обратном (нисходящем) порядке. Как я могу выразить это в потоке Speedment, похожем на это:

films.stream()
    .filter(Film.LENGTH.greaterThan(120))
    .sorted(... some expression ...)
    .skip(100)
    .limit(50)
    .collect(Collectors.toList());

Я хочу, чтобы мой SQL-запрос был оптимизирован с помощью Speedment, и поэтому я не могу использовать анонимную лямбду.

1 ответ

Решение

Используйте встроенный компаратор для поля, которое вы хотите использовать, и примените обратную операцию Comparator:::

films.stream()
    .filter(Film.LENGTH.greaterThan(120))
    .sorted(Film.LENGTH.comparator().reversed())  // <--- Here
    .skip(100)
    .limit(50)
    .collect(Collectors.toList());
Другие вопросы по тегам