Я использую 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 как другим ресурсом, но это увеличило бы сложность кода.
Я думаю, что это своего рода ошибка, но я не уверен, что это поведение отличается отожидаемый.
Как мне заставить это работать?