目的
RDBMSを使用し、一対多の関係にある子テーブルから特定のレコードを取り出す。
取り出す条件には、子レコードの値に加え、リレーションのある親レコードの値も対象とする。
内容
Spring Data JPA - リファレンスドキュメント
【Spring Data JPA】自動実装されるメソッドの命名ルール - Qiita
上記のようにJPAでは、一つのテーブルへの検索は既に用意されているメソッドの組み合わせで問い合わせができる。
しかし、内部結合をしたうえで検索条件を適用しなくてはいけない今回のような場合はJPQLの使用が必要となる。
Spring Data JPA @Query | Baeldung
・エイリアスを指定する(直でテーブル名を指定するとエラーがでました。後日、調査予定)
・プレースホルダーは「?1」のように記述する
...あまり書く事がありませんでした。
感想
SQLとは違いますが、書けると実装の幅が広がるので試して良かったと思います。
設計の重要性についてひしひしと感じる毎日です。
関係ない話
一分チェスを息抜きにしていたのですが、短い時間で相手を出し抜く手が浮かんだ時は嬉しいですが、そんなにポンポン浮かびません。
パズルは無料会員なので一日数問まで。それでも、レート2100くらいだとすぐ解法が浮かぶので、戦略の問題かなと思います。そうなると、チェスの本や動画を観て、ちゃんと時間を割かなくてはいけなくなるので迷いどころです。(東京だと沢山できるところがありそうなので、時間さえ許せばありなのでしょうが...)
裏を返すと、今は、基本的にミスをするしないの勝負しかしていないのかなと落ち込みます。