Hibernate Bulk insert

9 respostas
G

Olá estou com uma duvida sobre o Bulk insert ou Batch insert no hibernate

tenho o seguinte metodo no meu DAO:

public void massiveInsert(List<Item> item) {
		Transaction tx = session.beginTransaction();

		for (int i = 0; i < item.size(); i++) {
			session.save(item.get(i));
                        if (i % 20 == 0) {
				session.flush();
				session.clear();
			}
		}

		tx.commit();
		session.close();
}

mas ele não esta inserindo tudo (cerca de 300 itens) ele para no 8

9 Respostas

Hebert_Coelho

Pq parou? parou pq?

Erro? Exception?

G

nenhuma exception simplesmente não grava :confused:

Hebert_Coelho

gabriel.ggt:
nenhuma exception simplesmente não grava :/
Debugou?

G

debuguei sim ele passa por todos os items no laço de repetição porem ele simplesmente não executa o session.save(item.get(i); depois do 8 item

Hebert_Coelho

Pra onde ele vai? O que acontece depois do 8 maldito?

G

não vai pra lugar nenhum ele retorna como se tivesse executado com sucesso.

Hebert_Coelho

gabriel.ggt:
não vai pra lugar nenhum ele retorna como se tivesse executado com sucesso.
colocou um try cath ao redor do seu método para ver se cai no catch?

G

eu testei sim ele não retorna nada no console…

uma coisa engraçada é o seguinte:

se eu alterar o laço para-

for (int i = 0; i < sms.size(); i++) {
			session.save(sms.get(i));
			if (i % 1 == 0) {
				session.flush();
				session.clear();
			}
}

Ele insere todos os dados.

J

Já tentou retirar:

...
session.clear();

http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/Session.html#clear()

Criado 21 de fevereiro de 2013
Ultima resposta 21 de fev. de 2013
Respostas 9
Participantes 3