hibernateTemplate执行sql保存及Update queries only supported through HQL异常解决

     因为项目关系需要使用HibernateTemplate来执行SQL语句更新,在网上查了下相关代码,参考一些博客写了如下方法即可实现。代码如下:

    

public int updateBySQL(final String sql,final List pl) {
    try {
      return  this.template.execute(new HibernateCallback(){
         public Object doInHibernate(Session session) throws HibernateException,SQLException {
            SQLQuery query = session.createSQLQuery(sql);
            if(pl != null && !pl.isEmpty) {
              for(int i = 0;i < pl.size();i++) {
                query.setParameter()i,pl.get(i);
             }
             return query.executeUpdate();
            }
         }
      });
   } catch(Exception e) {
      e.printStackStace();
      throw new Exception(e.getMessage());
   }
}

    可是执行却出现了如下异常了:

   

java.lang.UnsupportedOperationException: Update queries only supported through HQL


    后来查了网上说因为Hibernate3.1执行executeUpdate()时会出现如上异常,应该将版本更新至至少3.2.5,我查了下项目的hibernate3.jar的版本信息是3.1.3,换成了3.2.5.ga,再次执行,异常消失,问题得以解决,这个问题网上基本都有正确的解答,此处自己再记录巩固下。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值