yyaa
@yyaa

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【Java】Order.desc(TABLE1.DATE)へのnullsLastの付与方法

解決したいこと

Orderlistに下記をセットしたい

ORDER BY DATE DESC NULLS LAST

ORDER BY句を生成しているコードに「NULLS LAST」を追加したいが、
「,」が入ってしまうことで別カラムと認識されてしまう

発生している問題・エラー

ORDER BY DATE DESC , NULLS LAST

元コード

protected void Orderlist(List<Order> orders){
    var date = IntStream.range(0, orders.size())
        .filter(i -> orders.get(i).getProperty().equals(Table1.COL_DATE))
        .findFirst();
    
    if (date.isPresent()){
        orders.set(date.getAsInt(), Order.desc(Table1.COL_DATE));
    }
}

修正コード

protected void Orderlist(List<Order> orders){
    var date = IntStream.range(0, orders.size())
        .filter(i -> orders.get(i).getProperty().equals(Table1.COL_DATE))
        .findFirst();
    
    if (date.isPresent()){
        orders.set(date.getAsInt(), Order.desc(Table1.COL_DATE).nullsLast());
    }
}

※下記を追加したのみ

.nullsLast()

自分で試したこと

import org.springframework.data.domain.Sort;

protected void Orderlist(List<Order> orders){
    var date = IntStream.range(0, orders.size())
        .filter(i -> orders.get(i).getProperty().equals(Table1.COL_DATE))
        .findFirst();
    
    if (date.isPresent()){
        Order order = Sort.Order.desc(Table1.COL_DATE).nullsLast();
        orders.set(date.getAsInt(), order);
    }
}

特に挙動は変わらずのままでした。
import static java.util.Comparator.comparing;
等も使用したのですがエラーが解決しない状態です

Java初心者の為情報が足らないかもしれないのですが解決の程お願いできましたら幸いです

0

1Answer

Order order = new Order(Direction.DESC, Table1.COL_DATE, NullHandling.NULLS_LAST)

のようにしてもダメでしょうか?

0Like

Your answer might help someone💌