【问题标题】:Hibernate 4.1.11 hql delete query with where in listHibernate 4.1.11 hql 删除查询与列表中的位置
【发布时间】:2013-10-06 02:26:36
【问题描述】:

我想从表中删除一些具有特定 ID 的条目。我想知道这个请求的语法

delete from table where id in list_of_ids

在 hql 中。

【问题讨论】:

    标签: hibernate hql hql-delete


    【解决方案1】:

    delete from Table as table where id="value"

    以上情况

    表格- Pojo 类

    - 数据库表名


    【讨论】:

    • 谢谢,但我没有一个值
    • 所以你有不止一个 id ,无论发生在哪里你都需要删除整条记录
    • 是的,我想要在 hql 中等效的这个“从 id IN (...) 的表中删除”
    【解决方案2】:

    使用这个

    Query qry = session.createQuery(delete from Pojo where pojo.property in (:bindParameter);
    qry.setParameter("bindParameter", list);
    

    如果列表为空,请注意此语句 SQL 异常。

    【讨论】:

      【解决方案3】:

      假设你的表的id是Long类型,那么正确的删除方式如下:

      List<Long> ids = new ArrayList<Long>();
      ids.add(1L);
      ids.add(2L);
      
      Query q = session.createQuery("DELETE FROM YourEntityName ye WHERE ye.id IN (:list)");
      
      q.setParameterList("list", ids);
      q.executeUpdate();
      

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 1970-01-01
        • 2016-05-20
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多