使用IndexColumn从ManyToMany中删除

时间:2010-05-27 14:32:45

标签: java hibernate

Report.entity {
  @ManyToMany
  @JoinTable(name = "reports_contents_relations",
             joinColumns = @JoinColumn(name = "report_id"),
             inverseJoinColumns = @JoinColumn(name = "content_id"))
  @IndexColumn(name="content_order")
private List contents = new ArrayList();
}

Someclass {
  public void remoteContentFromReport(Content content) {
    List contents = report.getContents();
    contents.remove(content);
    save(report);
  }
}

调用remoteContentFromReport方法时,我收到以下错误。

  

java.sql.BatchUpdateException:   删除重复条目   集合

我不想删除Content.entity,只是将连接表中的条目与报告相关联。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您应该只需拨打report.saveOrUpdate()即可自动取消链接report.contents列表中不存在的所有内容(如果所有内容都已正确映射)。

因此,请获取您的报告,从内容列表中删除不需要的内容条目,然后保存。