【问题标题】:Delete record only from parent entity仅从父实体中删除记录
【发布时间】:2019-03-23 13:59:02
【问题描述】:
在我的项目中,我有 2 个与 @OneToMany 和 @ManyToOne 相关的实体。
检查这些图片 -
我的问题-当我从 Supplies 中删除记录时,也会从 Products 中删除记录,但我没有不会。如果我删除 CascadeType.ALL 然后再次尝试此操作会出现错误
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败(shop.products,约束FK65gu3e053fcnl70hwq8vp7b2g外键(supplies)参考@ 987654329@(id))
这个问题怎么解决???
【问题讨论】:
标签:
java
spring
hibernate
【解决方案1】:
哦,经过 30 分钟的思考,我解决了。我刚刚在我的删除方法中添加了这段代码
@Override
public void deleteSupply(Long id) {
Supplies supplies = supplyRepository.findById(id).orElse(null);
Set<Products> productsList = supplies.getProducts();
productsList.forEach(products -> products.setSupplies(null));
supplyRepository.deleteById(id);
}