2017-05-05 1 views
1

필터링하고 내림차순으로 정렬하려는 데이터베이스 테이블이 있습니다. 나는 Speedment에서 그 표현 어떻게이 비슷한 스트리밍 :속도를 사용하여 스트림을 역순으로 정렬하는 방법

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

나는 나의 SQL 쿼리 Speedment 최적화 할 수 있으므로 나는 익명 람다를 사용할 수 없습니다합니다.

+0

'''비교기는 ::를 reversed'''가 중요하다 내장 된 비교기가 사용되거나 Speedment가 백그라운드에서 완벽하게 최적화 된 SQL 쿼리를 렌더링 할 수 없게됩니다. –

+1

깃발을 꽂은 후 질문을 변경하면 깃발에 대해 불평 할 수 없습니다 .... –

답변

3

내장 사용이처럼 Comparator::reversed 작업을 적용 할 필드에 대한 비교 사용 :

일반 익명 람다 반대로
films.stream() 
    .filter(Film.LENGTH.greaterThan(120)) 
    .sorted(Film.LENGTH.comparator().reversed()) // <--- Here 
    .skip(100) 
    .limit(50) 
    .collect(Collectors.toList()); 
관련 문제