2013-12-09 18 views
5

私は2テーブル /エンティティを持っていませんでした。です。 クロスは、私は左の参加を行うことができますどのようにJPAJPA - 結合なしの2つのテーブルを残しました

FROM A as a, B as b WHERE b.col1=a.col1 

に参加するため は私が行くことができますか?

私はAからすべての値をしたいと

は動作しません何のB.がない場合、NULLを残す可能とB値とそれらを埋める:

FROM A as a LEFT JOIN B as b WHERE b.col1=a.col1 

パスは、参加予定!

無効なパス:「b.col1」

答えて

-3

これは、次のクエリでJPAで可能です:

FROM A as a, B as b WHERE b.col1=a.col1 OR b.col1 IS NULL 
+1

JOINをLEFTと同じではないこと。 b.col1 = 3で、a.col1 = 3がないとします。クエリはこの行を返しませんが、LEFT JOINがそれを返します。 –

4

あなたがいる限り、エンティティ間の関係がないとして、JPAでそれを行うことはできません。

ソリューション:

  1. 使用ネイティブクエリ。
  2. それらの間に関係を追加します(最終的に間接的に遅延します)。間接的には、 AはPseudoEntityを知っています。 PseudoEntityはBを知っていますが(関係所有者はエンティティBです)、 BはPseudoEntityを知っています。
関連する問題