Как отсортировать поток в обратном порядке с помощью 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());