删除在Hibernate中作为类的id

时间:2013-07-19 00:06:20

标签: java sql hibernate postgresql javabeans

当用户按下按钮

时,我有以下查询来删除表格中的项目
  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以便我可以删除它。我想这样做的原因是因为当我从汽车表中删除汽车时,我还需要在其他表中删除汽车的所有实例。

1 个答案:

答案 0 :(得分:2)

  

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

您需要在设置了ON DELETE CASCADE的数据库中创建外键,或者为依赖对象使用Hibernate的孤立删除功能。

我建议使用组合。在数据库中创建FOREIGN KEY引用,但将它们设置为ON DELETE RESTRICT。然后通过孤立删除管理Hibernate中的关系等。数据库检查将确保如果你在Hibernate级别错过某些东西,你将不会在数据库中找到不一致的数据;相反,当您运行查询或尝试提交时,您将收到数据库错误。

请参阅: