Reputation: 4181
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); } }
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?
Upvotes: 4
Views: 1040
Reputation: 111255
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.
Upvotes: 1