Удалить ресурс в весенних данных, оставшихся ненавидеть с отношениями

У меня есть категория, предмет и роли для ресторана. Я могу запросить GET и POST с помощью почтальона, но когда я пытаюсь удалить запись в «категории», он дает 204 - нет содержимого, но данные все еще не удаляются. это потому, что категория имеет отношение многие к одному с рестораном. с другой стороны, если я делаю запрос DELETE для ролей, он работает отлично, что не имеет прямого отношения.

POJO для категорий

@Entity
@Table(name="Categories")
public class Category { 

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;

    @ManyToOne
    @JoinColumn(name="restaurantId")
    private Restaurant restaurant;

    @OneToMany(mappedBy = "category", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private Set<Item> items;

    public Category () {
    }

    @Autowired
    public Category(String name, Restaurant restaurant, Set<Item> items) {      
        this.name = name;
        this.restaurant = restaurant;
        this.items = items;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Set<Item> getItems() {
        return items;
    }
    public void setItems(Set<Item> items) {
        this.items = items;
    }
    public Restaurant getRestaurant() {
        return restaurant;
    }
    public void setRestaurant(Restaurant restaurant) {
        this.restaurant = restaurant;
    }
}

POJO для ролей

@Entity
@Table(name="Roles")
public class Role {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;

    @OneToMany(mappedBy = "role", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    private Set<User> users;

    public Role() {
    }   

    @Autowired
    public Role(String name, Set<User> users) {     
        this.name = name;
        this.users = users;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Set<User> getUser() {
        return users;
    }
    public void setUsers(Set<User> users) {
        this.users = users;
    }
}

Репозиторий категорий

public interface CategoryRepository extends CrudRepository<Category, Integer> {

}

Удалить запрос в почтальоне

DELETE localhost:9090/api/categories/7
Content-type: text/uri-list 
Response: 204 no content

person shankara narayanan    schedule 14.01.2018    source источник


Ответы (1)


Я также столкнулся с этой проблемой. Попробуйте добавить следующий параметр для аннотаций OneToMany.

orphanRemoval = true
person Sp Sesha    schedule 27.01.2018