2011-05-05 59 views
0

我有一類節點 Node.javaHibernate的自我拯救多對多問題

public class WebPage implements BusinessObject { 
    @Id 
    private Long  id; 
    @ManyToMany 
    @JoinTable(name = "childnodes") 
    private Set<WebPage> references; // nodes contained by this node 
} 

我的要求:

  1. 一個節點可以引用許多節點。
  2. 一個節點可以自我引用它。
  3. 一個節點可以被許多節點引用或不引用。

我想要做這樣的事情:

  1. 節點A - >節點B(節點A引用節點B等)
  2. 節點A - >節點C
  3. 節點A - >節點D

  4. 節點B - >節點E

  5. 節點B - >節點C

所有步驟運行,除了第5一個確定。我有一個例外:Unique index or primary key violation:我如何告訴Hibernate不要嘗試插入節點C,而是更新它!

回答

0

的問題是不是代表Hibernate,而是代碼中的一個錯誤:\

1

您沒有提供嘗試創建所有實體的代碼。然而,流量會是這樣,

  1. 創建/檢索與所有這些
  2. 保存節點B所需要的節點B
  3. 填充節點B的所有節點與cascade-insert