プログラミング 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


関連記事

【SpringBoot入門】#4~ headerの作成と埋め込み

概要 全ての画面で使用するヘッダーを作成します。 そして、Index画面に埋め込むところまでを行います。 共通ヘッダーの作成

・&lt …

CompsiteパターンでHTMLタグを実現するには?

Compositeパターンに応用できそうなものとして、 HTMLタグなんかいいかと思いコーディングしてみました。   クラス図   説明 Compositeパターンは再帰構造を実現 …

【Java】Optionalが処理できないならデフォルト値を返そう

概要 Optionalはnullである可能性を明示的に返してくれる便利なコンテナ・オブジェクトです。 if(obj == null)… といったことをしなくてよくなったのは素晴らしいことだ …

【Java入門】Functionの使い方まとめ

概要 Function <T, R> apply(T)を関数メソッドに持つ関数型インタフェースです。 1つの引数を受け取って結果(R)を返します。   基本的な使い方 Functionイン …

どっち,比較

Javaに向いている人・向いていない人

プログラマ、エンジニアを目指している方の中で、どんな言語がいいのか? という悩みをもっている方に向けて、Javaに向いている人と向いていない人という観点でお話しします。 Javaができること Java …

SpringFramworkの良書

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

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