3
我有兩個以下類:JoinTable丟失
@Entity
class A {
@Id
private aId;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "AB", joinColumns = @JoinColumn(name = "aId", referencedColumnName = "aId"), inverseJoinColumns = @JoinColumn(name = "bId", referencedColumnName = "bId"))
private Set<B> bSet;
}
@Entity
class B {
@Id
private bId;
}
予加載從一個數據庫中的完整對象結構,然後進入第二數據庫上一個新的事務再次持續的結構。但是「AB」表格留空。這很奇怪,因爲「B」是持久的,但我只明確堅持「A」。我檢查了A對象包含非空集B,所以這不是問題。
這讓我得出這樣的結論:Hibernate認爲「AB」表應該存在,因爲「A」和「B」都已經有了它們的主鍵。有沒有辦法解決這個問題,這樣我可以讓Hibernate在第二個數據庫中保存連接表?
我現在用EntityManager.merge()而不是EntityManager.persist()測試了它,並且它可以工作。但我仍然不確定堅持不懈的原因... – 2010-11-10 13:52:10
aId和bId字段的類型是什麼?您在這裏發佈的方式會導致編譯錯誤。 – 2011-12-21 17:10:27