【发布时间】:2018-04-19 21:16:01
【问题描述】:
我不知道出了什么问题。这是我拥有餐厅的酒店实体:
@OneToMany(mappedBy = "hotel", cascade = CascadeType.ALL)
@JsonIgnoreProperties({"hotel"})
private List<Restaurant> restaurants;
这是我的餐厅实体,其中有酒店:
@ManyToOne(cascade = CascadeType.ALL)
@JoinTable(
name = "restaurant_hotel",
joinColumns = @JoinColumn(name = "restaurant_id"),
inverseJoinColumns = @JoinColumn(name = "hotel_id")
)
@JsonIgnoreProperties({"restaurants"})
private Hotel hotel;
当我更新餐厅时,我可以毫无问题地设置酒店,并在查看酒店时看到变化。但是当我更新酒店时,只有酒店会更新。酒店的餐厅没有更新。
只是为了澄清一下,我无意在更新酒店时更改餐厅实体本身,反之亦然。只想在更新酒店实体时更改哪些餐厅属于酒店。目前只能在更新餐厅时更换酒店。
我在使用org.springframework.data.repository.PagingAndSortingRepository 保存酒店对象之前检查了它,并且它包含正确的餐厅。
【问题讨论】:
-
向两个方向级联是不好的做法。还有其他讨论可能对您有所帮助:stackoverflow.com/questions/1534599/a-question-on-jpa-cascading
标签: spring hibernate spring-boot spring-data