Hibernate中的java高效删除
我知道以下代码将从数据库中删除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");
...
所以我需要一个更有效的方法来做这件事,并且做得更好
# 1 楼答案
无需创建查询即可删除记录
# 2 楼答案
Hibernate有一个
Session.delete()
方法。如果已经有要删除的实体的引用,请使用它。不需要询问这还将应用在关联上配置的潜在级联,而delete查询则没有