12
我在使用JoinTables時遇到了一些雙向一對多關聯的問題。這是我的了:雙向一對多連接表
A類:
@OneToMany
@JoinTable(name="join_table",
JoinColumns={@JoinColumn(name="a_id")},
inverseJoinColumns={@JoinColumn(name="b_id")}
)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
public Set<B> getBs() {
return bs;
}
B類:
@ManyToOne
@JoinTable(name="join_table",
joinColumns={@JoinColumn(name="b_id", insertable=false,updatable=false)},
inverseJoinColumns={@JoinColumn(name="a_id", insertable=false,updatable=false)})
public A getA() {
return a;
}
如果我創建A和B的情況下,B的實例添加到和保存。有用。但是,當我重新加載A的實例並嘗試訪問B的集合時,它會拋出LazyInitializationError,並顯示消息「非法訪問加載集合」。
我在哪裏錯了? :)任何人都可以指出我使用連接表的雙向關聯的例子。在所有權保留給A類的地方,我已經通過hibernate.org的文檔進行了搜索,但我似乎找不到它。
-Daniel
爲什麼在派生實體(B)中使用不同的連接表? – Perception 2012-02-20 12:04:07
對不起,我更新了這個問題。原因是我修改了這個例子的實際的兩個類(基本上把它們重命名爲A和B)) – JustDanyul 2012-02-20 12:11:21
好的。請將您遇到的錯誤添加到問題中。 – Perception 2012-02-20 12:20:26