开发者

Deleting from ManyToMany with IndexColumn

Report.entity {
  @ManyToMany
  @JoinTable(name = "reports_contents_relations",
             joinColumns = @Join开发者_开发技巧Column(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);
  }
}

When calling remoteContentFromReport method I get the following error.

java.sql.BatchUpdateException: Duplicate entry deleting from collection

I don't want to delete the Content.entity, just the entry in the join table associating it to a report.

What am I missing?


You should be able to just call report.saveOrUpdate() and it will automatically unlink all content that is not present in report.contents list (if everything is mapped correctly).

So get your report, remove unneeded content entries from the contents list, and save it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜