Ajuda em metodo com hibernate

Ola bom dia a tds,meu problema é o seguinte:
O metodo abaixo funciona e roda tranquilo qdo um pedido so tem um item no banco, mais qdo tem mais de um item nao funciona alguem poderia me dizer o que esta faltando aqui?

public Boolean extornoPedido(Integer id) { 
		session = HibernateUtil.getInstance();			 	
		Transaction tx = null;
		try {
			tx = session.beginTransaction();
			Query dados = session.createQuery(" from Itensvenda where pedidoid= :id");
			dados.setInteger("id",id);					
			Iterator pairs = dados.list().iterator();				
			while ( pairs.hasNext() ){		
			Object[] pair = (Object[]) pairs.next();			
			Integer Item =(Integer) pair[0];		
			Itensvenda loadprod=findItensvenda(Item);
			Integer QTD = loadprod.getQuantidade();
			Integer Idprod = loadprod.getProduto().getProdutoid();		 
		 	Query extorno = session.createQuery("update Produto set qtdatual=(qtdatual + :qtd) where produtoid= :ID  ");
			extorno.setInteger("ID", Idprod).setInteger("qtd",QTD).executeUpdate();
			tx.commit();
			System.out.println("commit efetuado!");				
			}//FIM WHILE			
			return true;			
		} catch (HibernateException e) {
			tx.rollback();			
		} finally {
			session.close();
		}
		return false;		
	}

Obrigado flws t+.