Querydsl Order Byを解決する際のフィールドが空の場合のソート制御


Querydslがプロジェクトで発生した問題を解決する
  • プロジェクト全体環境紹介
  • Querydsl用法
  • Order byのテクニック
  • 問題説明:
  • 解決策:
  • プロジェクト全体の環境紹介
    開発ツール:idea 2019.3.1フラッグシップ解読構築ツール:maven 3.9 java環境:1.8 SpringBoot:2.2.1データベース:musql 5.7 ORM:JPA、SpringBootバージョンQuerydslに従う:4.2.1
    Querydslの使い方
    Querydslを使用した後、問題が発見された場合、解決方法は少なく、公式サイトにバグが更新されてもタイムリーではありません.例えばgroup having文法を使用する場合、ページを分けるとエラーが発生し、2017年にgit issueに送信されましたが、まだ解決されていません.プロジェクトを開発する際には、わずかな探索しかできません.ここでメモを取ります.似たような問題に遭遇した仲間を助けてほしい!どのようにquerydslをプロジェクトに導入するか、再び紹介しないで、自分で検索すればいいです.
    Order byのテクニック
    問題の説明:
    order byを使用してソートする場合、フィールドのデフォルト値はnullで、null値はデータベースの中で値が最も小さい場合、orderByを使用する場合、ascのすべてのnull値が一番前にあり、逆に後ろにある場合、nullの順序を制御したい
    解決策:
    mysql構文を使用する場合は、if構文を使用して非表示ソートフィールドを追加し、querydslを使用してnullを直接orderBy(user.age.asc().nullsFirst())またはorderBy(user.age.asc().nullsLast())で制御することができます.