2017-08-25 86 views
0

我有這種情況。我有兩個關係一對多的表。例如表A的列idA, someOtherIdA和表B的列idB, forenKeyIdA, someImportanFieldFromB。 還有我用彈簧的數據,現在我需要創建方法使用連接表彈簧數據查找查詢

public B findBySomeOtherIdAAndsomeImportanFieldFromB(int someOtherIdA, int someImportanFieldFromB); 

爲此,我需要通過ID

Select * From A Join B On A.idA = B.idB Where someOtherIdA = 1 someImportanFieldFromB = 1 

連接兩個表,我使用註釋@Query檢索結果。 但問題是我無法自動將結果映射到對象B. 我該怎麼做?是否有可能在不使用nativeQuery = true的情況下這樣做?

+0

什麼'[從B連接A ...'? – StanislavL

+0

@StanislavL你是什麼意思?只需更改訂單?或者使用其他語言? –

回答

0

我發現的最佳解決方案是使用JPQL或HQL來獲取實體並映射它。在例子中,我已經寫它會像

@Query(SELECT b FROM A as a RIGHT JOIN a.forenKeyToAFromB b Where Somevalue=1) 
public B findBySomeOtherIdAAndsomeImportanFieldFromB(int someOtherIdA, int someImportanFieldFromB); 

此方法查詢將實體映射到你的存在實體B和解決您的TASL