2016-09-06 6 views
0

が、私はこの形式でJPQLを必要とする参加時にON句に条件を追加します。(JPA)

SELECT * 
FROM Person p 
LEFT JOIN Address a ON p.id = a.id AND a.flat = 100; 

しかし、私は、コードを実行すると、クエリがわずかに今後変更されたデータの出力を修正している。..

SELECT * FROM Person p LEFT JOIN Address a ON p.id = a.id where a.flat = 100; 

答えて

0

sql出力をフォーマットするとします。

したがって、hibernateでは、hibernate.format_sql=trueにsqlの書式を整えるように設定できます。

スプリングブートを使用している場合は、spring.jpa.properties.hibernate.format_sql=trueで簡単に設定できます。

+0

私はここでフォーマットする必要はありませんが、私は正確な結果を前のものから取得した正確なSQLを必要とします。私の最初のクエリは3つのレコードを返し、2番目のクエリは正しい1つだけを返します。 –

0

JPQLでは任意の他のルートオブジェクトへの参加が許可されていないため、JPQLでこれを行うことはできません。あなただけの関係に参加することができます。個々のベンダーはベンダー拡張を提供して任意のルート間の結合を許可することができますが、移植性は失われます。

以上を提供するには、実際のJPAエンティティを投稿する必要があります。