0

我知道以下代码将从数据库中删除 id = 5 的记录:

 Query query = session.createQuery("delete from Class where id = 5");
 query.executeUpdate();

但在我删除它之前,需要将此记录的数据保存在一个变量中。所以我想选择id = 5,经过一些代码,我将其删除。如果我对它们使用两个不同的查询,那效率不高。因为这样我们在数据库中搜索该项目两次。

query = session.createQuery("from Class where id = 5");
//somecode
query = session.createQuery("delete Class where id = 5");
...

所以我需要一种更有效的方法来做到这一点,并且做得更好。

4

2 回答 2

4

无需创建查询即可删除记录。

query = session.createQuery("from Class where id = 5");
List list=query.list();
if(list.size()!=0)
 {
   ClassName obj = (ClassName)list.get(0);
   session.delete(obj);
  }
于 2012-07-04T10:42:36.567 回答
3

Hibernate 有一个Session.delete()方法。如果您已经引用了要删除的实体,请使用它。无需查询。

这也将应用在关联上配置的潜在级联,而删除查询则不会。

于 2012-07-04T10:44:03.260 回答