无法使用hibernate从表中删除数据
我在网上尝试了很多方法,但都不管用。 我想使用hibernate从数据库中删除数据,但我遇到了以下错误 严重:无法删除或更新父行:外键约束失败(无法使用hibernate从表中删除数据,hibernate,Hibernate,我在网上尝试了很多方法,但都不管用。 我想使用hibernate从数据库中删除数据,但我遇到了以下错误 严重:无法删除或更新父行:外键约束失败(sakilacomanda,约束comanda\u ibfk\u 1外键(IDPRODUS)引用produs(IDPRODUS) 严重:无法将数据库状态与会话同步 comanda表示订单,produs表示产品 代码如下: private void StergeButtonActionPerformed(java.awt.event.ActionE
sakila
comanda
,约束comanda\u ibfk\u 1
外键(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());
}
}
这仅仅意味着删除产品是不可能的,因为它将打破数据库中的外键约束。您有产品订单,但您正在尝试删除该产品。你将如何履行这些命令?你必须决定:
- 您可以在删除产品之前删除引用该产品的订单
- 或者将订单保存在数据库中,但这些订单不能再引用产品
不执行上述任何操作都会使数据库处于不一致的状态:不存在的产品订单。数据库中的外键约束确保不可能出现这种不一致的状态。您已经发布了两次“comanda”的映射,而“produs”的映射丢失。@Pino我编辑了它。谢谢你让我知道。