2017-02-13 126 views
1

我目前正致力於將使用JDBC(不是爲JPA設計)的代碼遷移到Hibernate,並且我有兩個要與一對一關係鏈接的實體。 下面是類似的實體,可以幫助解釋我的問題:OneToOne與查詢的關係

Entity A 
complexKey : String 

Entity B 
complexSubKey1: String 
complexSubKey2: String 
complexSubKey3: String 

這個例子,我想鏈接實體A和B,當

complexKey = complexSubKey1 + 「:」 + complexSubKey2 +「 :「+ complexSubKey3。

我真的不知道如何做到這一點。

+0

您是否創建了一個查詢POJO和映射??關係,以實現這一目標?什麼是你想實現? – Akshay

+0

我正在處理遺留代碼,這些遺留代碼並不是專爲JPA(和關係)設計的,我確實有pojos,但是我卻因爲太麻煩而無法提出這個問題。 – mteffaha

回答

1

您應該能夠通過使用JoinColumnOrFormula註釋

public class B{ 

    @OneToOne 
    @JoinColumnsOrFormulas(
      { 
       @JoinColumnOrFormula(
       [email protected](value="concat(complexSubKey1,':','complexSubKey2',':',complexSubKey3)" 
        , referencedColumnName="complexKey")) 
      }) 
    @Fetch(FetchMode.JOIN) 
    private A a; 
} 
+0

謝謝,這似乎是我需要的確切東西。 – mteffaha

+0

太好了。很高興我能幫上忙 –