Hibernate查询批量操作异常

时间:2015-10-19 09:55:07

标签: java hibernate

使用Hibernate,我试图通过从列表中设置多个值并同时执行它来执行查询。这是代码

public void savePriority(List<Integer> priorities,int typeid) {
    String sql="update table conf_sr_type_baserule_assoc set n_priority=:priority where n_typeid=:typeid";
    /*System.out.println("sql query in savePriority"+sql);*/
    Session session=sessionFactory.openSession();
    Transaction tx=session.beginTransaction();
    SQLQuery squery=session.createSQLQuery(sql);
    tx.begin();
    for(int priority:priorities){
        squery.setParameter("priority", priority);
        squery.setParameter("typeid", typeid);
        squery.executeUpdate();
    }
    tx.commit();
    session.close();    
}

但是我收到了一个错误:

  

org.hibernate.exception.SQLGrammarException:无法执行本机批量操作查询

1 个答案:

答案 0 :(得分:1)

问题来自您的SQL查询,该查询无效。

应该是:

update conf_sr_type_baserule_assoc set n_priority=:priority where n_typeid=:typeid

而不是

update table conf_sr_type_baserule_assoc set n_priority=:priority where n_typeid=:typeid