2012-05-30 31 views
0

沒有PK我有2個傳統的表:加入一個傳統的表與Hibernate

CREATE TABLE A (
    ID NUMBER PRIMARY KEY , 
    DATA NUMBER 
) 

CREATE TABLE A_CONF (
    A_ID NUMBER, // FK to A 
    INFO VARCHAR2(256) 
) 

創建JPA實體A很簡單。然而,我能做些什麼來檢索可以與A的實例關聯的多個INFO字段,因爲A_CONF中沒有PK,因此無法爲其創建實體?

感謝您的幫助。

回答

1

好像你正在尋找什麼JPA稱之爲「元素集合」:

如果選擇的ID已經被多次插入
@Entity 
public class A { 
    @Id 
    private Long id; 
    private Long data; 

    @ElementCollection 
    @CollectionTable(name="A_CONF", [email protected](name="A_ID")) // A_ID would be the default join column 
    @Column(name="INFO") 
    private Set<String> infos; // using Set assuming unique values 
} 
+0

問題是我可以有幾個''字符串數據'! –

+0

然後添加你的幾個字符串字段。我們只能根據您在問題中實際給出的信息來回答...... –

+0

我做了:「我能做些什麼來檢索可以與A的實例關聯的多個INFO字段」。你是什​​麼意思「添加你的幾個字符串字段」? –

0

即使您的表沒有一個,您也可以在模型類中定義一個主鍵,只需在模型中選擇一個或某些列並將它們作爲ID。

+0

會不會有問題? –

+0

你將無法通過id獲取元素,除此之外,我不認爲你會遇到問題,爲什麼不定義組合鍵? –

+0

桌子上根本沒有鑰匙。我基本上可以有兩次相同的路線! –