在我的项目中,我有2个与@OneToMany和@ManyToOne相关的实体。 检查这些图片-
我的问题 -当我从供应中删除记录时,我也从 Products 中删除记录,但我没有不会。如果我删除 CascadeType.ALL ,然后再次尝试此操作,将出现错误
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败(
shop
。products
,CONSTRAINTFK65gu3e053fcnl70hwq8vp7b2g
FOREIGN KEY(supplies
)参考文献supplies
(id
))
如何解决此问题?
答案 0 :(得分:0)
哦,经过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);
}