2013-07-19 88 views
0

我有以下查询在表中删除一个项目,当用户按下一个按钮删除的ID在休眠

String hqery = "DELETE FROM Person WHERE automobile = " selected_id; 
    Query q = hbsession.createQuery(hquery); 
    q.executeUpdate(); 

在Person类的变量是:

int id; 
String name; 
int age; 
Cars automobile; 

而Cars类中的变量有:

int id; 
String Manufacturer 
String Model; 
int Year; 

问题是汽车是一个Bean类的实例汽车,我如何使用查询删除课程,或者如何访问汽车的ID以便我可以删除它。我想这样做的原因是因为当我从汽车表中删除一辆汽车时,我还需要在其他表格中删除汽车的所有实例。

回答

2

我想这样做的原因是因为当我从汽车表中删除汽车时,我还需要在其他汽车表中删除汽车的所有实例。

您需要可以创建外键在数据库ON DELETE CASCADE集,或使用Hibernate的孤儿删除功能的依赖对象。我建议使用组合。在数据库中创建FOREIGN KEY引用,但将它们设置为ON DELETE RESTRICT。然后,通过删除孤儿等来管理Hibernate中的关系。数据库检查将确保如果您在Hibernate级别错过某些东西,您将不会在数据库中找到不一致的数据;相反,当您运行查询或尝试提交时,您会遇到数据库错误。

参见: