Hibernate self ManyToMany保存问题

时间:2011-05-05 03:18:28

标签: java hibernate

我有一个Node节点 的 Node.java

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. 许多节点可以引用一个节点。
  4. 我想做这样的事情:

    1. 节点A - &gt;节点B(节点A引用节点B,依此类推)
    2. 节点A - &gt;节点C
    3. 节点A - &gt;节点D

    4. 节点B - &gt;节点E

    5. 节点B - &gt;节点C
    6. 除第5步之外,所有步骤都运行正常。我有一个例外:Unique index or primary key violation:我怎么能告诉Hibernate不要尝试插入Node C而是更新它!

2 个答案:

答案 0 :(得分:1)

您没有提供尝试创建所有实体的代码。但是,流程就像是,

  1. 创建/检索节点B所需的所有节点
  2. 使用所有
  3. 填充节点B.
  4. 使用cascade-insert
  5. 保存节点B.

答案 1 :(得分:0)

问题不是代表Hibernate,而是代码中的错误:\