List<topics> topics=hibernateTemplate.find("from topics where forumid='"+forumid+"'");//从数据库查询匹配的 集合

  hibernateTemplate.delete(topics);//我用这种可是却报错说delete不能解决集合对象怎么用hibernateTemplate来删除一个集合呀?
我用的是HiberanateTemplate  请高手帮帮忙 怎么用这个来删除多个记录呀 谢谢拉!!

解决方案 »

  1.   

    循环List<topics>,一个一个删除topics。
      

  2.   

    循环List<topics>,一个一个删除topics。别无他法。
      

  3.   

    foreach(list l in lists)
    {
    l=lists[i];
    delete(l);
    }
    循环读取lists的值,逐渐删除掉
      

  4.   

      
    List<topics> topics=hibernateTemplate.find("from topics where forumid='"+forumid+"'");
         大家说用循环逐个删除集合对象  
      Iterator it=topics.iterator();
       while(it.hasNext()){
      topics top=(topics)it.next();
      hibernateTemplate.delete(top);
       } 可是我用上面的方法,报下面的错误啦  请高手指点这个是什么原因。最好是把循环删除的代码写出来谢谢!!
    org.hibernate.jdbc.BatchedTooManyRowsAffectedException: Batch update returned unexpected row count from update [0]; actual row count: 2; expected: 1
    org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:95)
    org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
    org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)
    org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
    org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
    org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
    org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
    org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
    org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
    org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
    org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
    org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
    org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
    org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    $Proxy7.DeleteForum(Unknown Source)
      

  5.   

    foreach(list l in lists)
    {
    l=lists[i];
    delete(l);
    }
    循环读取lists的值,逐渐删除掉  List<topics> topics=hibernateTemplate.find("from topics where forumid='"+forumid+"'");   那我这个该怎么 用上面的删除呀 lists我这个该用什么来代替啊
      

  6.   

    List<topics> topicslist=hibernateTemplate.find("from topics where forumid='"+forumid+"'"); 
    foreach(topics topic in topicslist)
    {  
       delete(topic );
    }
      

  7.   

    这样就可以删除了
    List<topics> topicslist=hibernateTemplate.find("from topics where forumid='"+forumid+"'");  
    for(topics topic in topicslist)
    {   
      delete(topic );
    }
      

  8.   

    这样删试一下吧,每一个对象都新分配新空间List<topics> topics=hibernateTemplate.find("from topics where forumid='"+forumid+"'");
      大家说用循环逐个删除集合对象  
    Iterator it=topics.iterator();
    while(it.hasNext()){
    topics top= new topics();//  每一个对象都新分配新空间
    top = (topics)it.next();
    hibernateTemplate.delete(top);
    }
      

  9.   

    楼主再试一下这个:
    List<topics> topics=hibernateTemplate.find("from topics where forumid='"+forumid+"'");
    hibernateTemplate.deleteAll(topics): 删除集合内全部持久化类实例。
      

  10.   

    List<topics> topics=hibernateTemplate.find("from topics where forumid='"+forumid+"'");
      大家说用循环逐个删除集合对象   
    Iterator it=topics.iterator();
    while(it.hasNext()){
    topics top= new topics();// 每一个对象都新分配新空间
    top = (topics)it.next();
    hibernateTemplate.delete(top);
    }   这个还是删除不了 这个是我的qq1404226085  希望高手帮我解决一下  ,谢谢啦