以下の内容はhttps://ti-tomo-knowledge.hatenablog.com/entry/2018/10/18/095121より取得しました。


Spring Data JPA のfind+OrderByで、No property desc foundエラー時の対処法


Spring Data JPAでのOrderBy

Spring Data JPAでエンティティクラスにfindして複数のレコードを取得する場合、OrderByをつければ並び順を変更できることはご存知でしょうか?

findByNameOrderById(Spring name)

などとすれば、nameで絞り込んだ上で、idの降順で並び替えができます。

これを見る限り、後ろにOrderByを入れればいいんだな、と思ってしまいがちですが、以下のような書き方だとエラーが発生してしまいます。

findAllOrderById()

これだとコンパイルのタイミングで、

No property desc found for type Integer! Traversed path

のようなエラーメッセージが出力されるのです。



whereを指定しない場合、OrderByの前にByが必要

上記のfindAllの例のように、where句の絞り込みをしない場合、OrderByの前にもByが必要になります。

よって、findAllの場合は以下のようにしなければいけません。

findAllByOrderById()

SQLの書き方に慣れていると、order byの前にbyを付けているようで少し気持ち悪いですよね。

今回はfindAllの例でしたが、この書き方はfindFirstやfindTopの場合なども同様です。

findFirst1ByOrderById()
findTopByOrderById()

今まで条件を指定しないとOrderByが使えないのでは?と思われていた方がいたら、ぜひ参考にしてください。


  • 発売日: 2017/04/06
  • メディア: エレクトロニクス

  • 発売日: 2018/12/12
  • メディア: エレクトロニクス

  • メディア: エレクトロニクス

  • 発売日: 2017/10/11
  • メディア: エレクトロニクス




以上の内容はhttps://ti-tomo-knowledge.hatenablog.com/entry/2018/10/18/095121より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14