Удаление из ManyToMany с помощью IndexColumn - PullRequest
3 голосов
/ 27 мая 2010
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 Ответ

1 голос
/ 27 мая 2010

Вы можете просто позвонить на report.saveOrUpdate(), и он автоматически отменит все содержимое, отсутствующее в списке report.contents (если все сопоставлено правильно).

Получите отчет, удалите ненужные записи содержимого из списка содержимого и сохраните его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...