【发布时间】:2018-10-27 08:18:21
【问题描述】:
假设我有:
class Car {
...
@OneToMany(mappedBy = "wheel", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
Set<Wheel> wheels;
}
class Wheel {
...
@ManyToOne(fetch = FetchType.LAZY)
Car car
}
我有这段代码(弹簧数据,wheelRepository 扩展 CrudRepository)来删除一个 Wheel:
wheelRepository.delete(wheel);
代码没有删除轮子,也没有抛出任何异常。 查看sql日志,没有“delete”语句。
我终于找到了一个问题:我有一辆带有轮组的汽车。
这样做可以解决问题:
car.getWheels().remove(wheel);
wheelRepository.delete(wheel);
但是是否可以避免第一行:当我删除一个轮子时,我希望轮子自动从它的车上移除?
另一个问题:是否可以默认抛出异常而不是“静默不删除”?
谢谢!
【问题讨论】:
标签: java hibernate spring-boot spring-data