有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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");
...

所以我需要一个更有效的方法来做这件事,并且做得更好


共 (2) 个答案

  1. # 1 楼答案

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

    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);
      }
    
  2. # 2 楼答案

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

    这还将应用在关联上配置的潜在级联,而delete查询则没有