load(News.class, (String)arr_id.get(i))
可能是这里错误;
load方法必须取到主键后才不会报错,
看看arr_id.get(i)是不是没取到值

解决方案 »

  1.   

    用find得到一个list,然后再deleteAll这个list就可以了。
      

  2.   

    用Hibernate 3吗 ??? so easy !!!
      public int delNews(final List arr_id) {
        return ( (Integer)this.getHibernateTemplate().execute(
            new HibernateCallback() {
          public Object doInHibernate(Session session) throws SQLException,
              HibernateException {
            Query q = session.createQuery(
                "delete net.csdn.News where arrid in (:ids)");
            q.setParameterList("ids", arr_id);
            return new Integer(q.executeUpdate());
          }
        })).intValue();
      }
      

  3.   

    我debug了下,(String)arr_id.get(i)取到值了
    在load的时候报错,没有load到值,查到的值是空的。昏
      

  4.   

    news=(News)verifyCodeDao.getObject(News.class, (String)arr_id.get(i));//查询记录
    使用getObject()方法,或者 直接给一个id值测试一下了
      

  5.   

    不要用load,用get..
    get会直接执行SQL,load会从缓存中取.
      

  6.   

    我get,load 都不行,最后搞了条hql搞定了。昏
     
      public List   getNewsList(final int num) {
            return (List) getHibernateTemplate().execute( new HibernateCallback() {
               public Object doInHibernate(Session session) throws HibernateException, SQLException {
               String hql = "FROM News n1 order by id desc" ; 
              Query query = session.createQuery( hql );
            query.setMaxResults( num ) ;
              List list = query.list();
            if ( list.size() > 0 ) {
              return list;
            } else {
              return null;
            }
          }
        });

      }