Проблема Spring Data Rest с дочерними ссылочными ассоциациями - PullRequest
0 голосов
/ 24 сентября 2019

Я использую Spring Data Rest с Spring Boot 2.1.7.RELEASE.

Мне нужна связь многих со многими с дополнительной информацией, поэтому у меня есть три класса: Foo, Bar и FooBar:

  • Foo имеет отношение @OneToMany к FooBar (mappedBy = "foo", cascade = CascadeType.ALL, orphanRemoval = true)
  • Бар имеет отношение @OneToMany к FooBar (mappedBy = "bar)", cascade = CascadeType.ALL, orphanRemoval = true)
  • FooBar имеет отношение @ManyToOne к Foo и другое отношение @ManyToOne к Bar

Когда я создаю PUT для обновления Foo я могу добавить новых баров или удалить их, даже обновить дополнительные столбцы FooBar, однако я не могу обновитьБар отношений .

Когда я делаю PATCH , столбцы корректно обновляются во всех случаях, кроме случаев, когда я удаляю последний FooBar (foo без баров),что он вылетает , выдавая ошибку «Коллекция с каскадом =» all-delete-orphan ”больше не упоминался экземпляром объекта-владельца".

Другие публикации и ссылки:

Я прочиталчто возможное решение состоит в том, чтобы управлять отношениями FooBar как другим ресурсом, но это увеличило бы сложность кода.

Я думаю, что это своего рода ошибка, но я не уверен, что это поведение отличается отожидаемый.

Как мне заставить это работать?

...