2016-09-06 69 views
0

我需要的JPQL格式如下:(JPA)在ON子句附加條件期間加入

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.format_sql=true來很好地格式化SQL。

如果您使用的是彈簧啓動,您可以簡單地通過spring.jpa.properties.hibernate.format_sql=true進行配置。

+0

我不需要在這裏格式化,而是需要確切的sql來獲取那些來自前一個的確切結果。我的第一個查詢返回3條記錄,第二條查詢返回1,這是不正確的。 –

0

JPQL不允許加入任意其他根對象,因此您不能在JPQL中這樣做;只允許你加入關係。單個供應商可能會提供供應商擴展以允許跨任意根連接,但是然後您失去了可移植性。

要提供更多信息,您必須發佈實際的JPA實體,而您沒有。