我在网上尝试了很多方法,但它不起作用。
我想使用hibernate从数据库中删除数据,但是我得到了这个错误
严重:无法删除或更新父行:外键约束失败(sakila
。comanda
,CONSTRAINT comanda_ibfk_1
FOREIGN KEY(IDPRODUS
)参考produs
( IDPRODUS
))
严重:无法将数据库状态与会话
comanda表示订单,而produs表示产品
以下是代码:
private void StergeButtonActionPerformed(java.awt.event.ActionEvent evt) {
try{
org.hibernate.Transaction tx = session.beginTransaction();
int idprodus = ((Produs)IdProdusComboBox.getSelectedItem()).getIdprodus();
Produs produs = (Produs) session.get(Produs.class, idprodus);
session.delete(produs);
tx.commit();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
答案 0 :(得分:2)
这只是意味着删除产品是不可能的,因为它会破坏数据库中的外键约束。您有产品订单,但您正在尝试删除该产品。您将如何兑现订单?你必须决定:
不执行上述任何操作会使数据库处于不一致状态:不存在的产品订单。数据库中的外键约束确保了这种不一致的状态是不可能的。