SpringSide的Hibernate批量删除异常

来源:互联网 发布:java入门教程免费下载 编辑:程序博客网 时间:2024/05/21 19:47

    问题:使用SpringSide的Hibernate批量删除的时候这样写hql语句是有问题的,如:

DELETE ACCOUNT WHERE ID IN (?)
    异常:参数个数越位,或超出设定长度。

batch delete account  parameters size out of   position

解决方案:动态加入不定参数的个数。

/** * 批量删除账号 *  * @param projectIds *            账号编号集合 * @return */public int batchDeleteAccountByIds(long[] accountIds){int flag=0;try{Long [] mylong=new Long [accountIds.length];StringBuffer sb=new StringBuffer("DELETE Account  where id in ( ");for (int i = 0; i < accountIds.length; i++){mylong[i]=new Long(accountIds[i]);if(i==0){sb.append("?");}else{sb.append(",?");}}sb.append(")");flag=accountDao.batchExecute(sb.toString(), (Object [])mylong);} catch (Exception e){Log.getLogger(ProjectDao.class).error("batch delete account error:" + e.getMessage());}return flag;}


0 0
原创粉丝点击