Batch Insert no Hibernate

Opa e ai pessoal, bom estou com duvidas quanto a perfomance para realizar várias inserts com o hibernate.

O que eu fiz foi tentar utilizar o batch conforme a documentação mas o que ocorre é que ele ta comitando a cada registro inserido e não com o tamanho do batch, exemplo:

for (int i = 0; i < minhaList.size(); i++) {
				
meuDao.save(minhaList.get(i));

     if (i % 1000 == 0) { 
             meuDao.limparSessao(); // aqui dentro tem o flush e o clear
     }
}

Usando uma outra saida fiz isso:

                      meuDao.saveAll(minhaList);
                      // e dentro do Dao
                      this.getHibernateTemplate().saveOrUpdateAll(minhaList);

A segunda saída tem se mostrado ser mais eficiente em termos de perfomance, uma vez que ele só faz os inserts de uma só vez, porém, esses objetos da lista vão ficar ocupando memória pelo menos ate o comit. E como são muitos objetos receio que isso possa me trazer problemas.

Alguém tem alguma sugestão de como usar o batch corretamente sem que isso seja lento e não consuma muita memória?