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: Duplicate entry deleting from collection
我不想删除 Content.entity,只删除连接表中将其关联到报告的条目。
我错过了什么?
最佳答案
您应该能够调用 report.saveOrUpdate()
,它会自动取消链接所有不在 report.contents
列表中的内容(如果所有内容都已映射正确)。
因此获取您的报告,从内容列表中删除不需要的内容条目,然后保存。
关于java - 使用 IndexColumn 从 ManyToMany 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2922046/