プログラミング Java

【JPA】リレーションの無いエンティティをJPQLで結合する

投稿日:

概要

@ManyToOneや@OneToManyといったリレーションをエンティティに設定していないまたは設定できない状況にあるが、結合した結果を取得したいという状況を想定しています。

方法としては「JOIN ON」を使います。
NativeQueryとはほんの若干だけ記述が違いがあります。
 

実装

 

エンティティ

ItemとCategoryがあるとします。
ItemにCategoryIdを持ちますがリレーションはありません。

 

レポジトリ

JPQLとnativeQueryの例を同時に記載しています。

■JPQLがNativeQueryと異なる箇所
・クエリ上のテーブル名はEntityアノテーションのname属性に一致する必要があります。
・SELECT句には取得対象のエンティティを指定しますが、その際に「.*など」でカラムの指定は不要です。

 

まとめ

  • JPQLにおいてもJOIN ON句の構文はNativeQueryと同じ。
  • テーブル名はエンティティのname属性と一致させる。
  • フィールドの指定は不要。

参考

【JPA徹底入門】JPQLによる検索処理 – JOIN ON

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

オブジェクト指向とは何なのかを簡単に説明してみる

オブジェクト指向とは何なのか? これを私の理解を元に、ごくごく簡単に説明してみたいと思います。   オブジェクト指向とは? オブジェクト指向とは何かを説明するために、 「オブジェクト」と「指 …

AWSへWebアプリケーション(Java)をデプロイする方法(書籍紹介)

対象者 ・個人開発者 ・ポートフォリオ作成者 手順 こちらの書籍を参考に私自身がAWSにデプロイした手順です。 書籍では図解もあってわかり易く解説されているので、ここでは流れを簡潔に説明します。 すで …

ユニークなListを持つファーストクラスコレクションの例

概要 正確に言うとListではなくSetです。 自分の確認と備忘録なのでご参考までに。 実装 ユニークなリストとしてSetで保持します。 Item 保持するオブジェクトです。 [crayon-62b6 …

プログラミングを上達させるために私がやってきたこと・やっていること

私の上達過程 写経 自分のレベルに合う本をもとに写経しては、コードの意味を調べて理解し、少しづつ体に染み込ませるように身に着けていきました。 とにかく初心者のころは右も左も分からず、ちょっとしたエラー …

【Java】TDDして汎用的な部品を作成する(日付期間オブジェクト)

目的 TDDブートキャンプというセミナーに参加して面白かったので、 自分で何かやってみようと思った。 仕様 日付期間を保持するオブジェクトである。 開始日と終了日を持つ。 開始日と終了日を持つことをど …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。