0
0

Spring Data JPA を利用中に思い付いたことのメモ

Last updated at Posted at 2023-09-22

概要

Spring Data JPAを開発に使用していて気づいた、アイデアというほどでもない諸々のメモです。
陳腐化するのも早そうですが、自分の備忘用にも今後追記していくと思います。
念のため、対象になるバージョンも太字で付記しておきます。

@Queryで頻出する句は文字列定数で管理する

ver.2.x
@Queryはメソッド単位のため、同じ記述を複数のメソッドに行わなければならないケースが出てきます。
典型的な例が集計結果をProjectionでDTOにデータを格納する場合のselect new packages.DTO(...)など。

そういう場合はクエリ用のヘルパークラスかDTOに文字列の定数として頻出句を定義してしまうのが良さそうです。Specificationを定義していたらその中も良さそうですね。
アノテーションに指定するクエリはその時点では文字列でしかなく、定数はIDEが内容を表示してくれるので確認も困りません。当然ながら、誤記の危険も減りますし、変更への対応も楽になります。

@Queryで使用するJPQLではエイリアスを短くしない

JPQLの書き方を検索すると非常に短いエイリアスを使用している例をよく見かけます。
シンプルなクエリなら良いですが、多くのテーブルを複雑にJOINするようなクエリで極端に短いエイリアスを使用していると、可読性が著しく下がります。
リファクタリングの時に後悔しますし、エイリアス名をドキュメント化するような事態になりかねません。

タイプする文字数は多くなりますが、エンティティの名前を使用するのが無難です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0