Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

Hiberta processamento em lote/Lista objetos

$
0
0

@hudsonjm escreveu:

Estou com um problema na execução de uma lista de objetos, ao processar essa lista de objetos
queria salvar os objetos da lista em lote assim como diz a documentação do hibernate:


Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);

if ( i % 20 == 0 ) { //20, same as the JDBC batch size
	//flush a batch of inserts and release memory:
	session.flush();
	session.clear();
}

processarCustomer(session, customer);

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

private processarCustomer(Session session, Customer customer){
try{

	session.save(customer);
}catch(Exception e){
	//Caso ocorra alguma falha em persistir o objeto não falhar o lote de procesasmento
	//Continuar processeguindo o processamento dos demais customers sem dar rollback na transacao
}

}

Porém se eu realizar dessa forma, caso ocorra um erro na hora de gravar um objeto entre o lote, só consegui
dando um rollback na transacao inteira, perdendo os outros dados já gravados.
Queria algo para continuar processando o lote, mas ignorar um dos objetos com falha entre esse lote.

Se eu abrir uma transação para cada objeto, o processamento fica muito lento, algumas sugestões?!

Mensagens: 2

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 759

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>