batch.processing.usage.chunk.hibernate.MyFileWriter.java Source code

Java tutorial

Introduction

Here is the source code for batch.processing.usage.chunk.hibernate.MyFileWriter.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package batch.processing.usage.chunk.hibernate;

import batch.processing.usage.chunk.hibernate.domain.Operation;
import batch.processing.usage.util.HibernateUtil;
import br.com.sicoob.cro.cop.batch.configuration.AbstractItemWriter;
import br.com.sicoob.cro.cop.batch.configuration.annotation.Context;
import br.com.sicoob.cro.cop.batch.step.chunk.ChunkContext;
import java.util.List;
import java.util.Random;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Session;

/**
 *
 * @author rogerioalves21
 */
public class MyFileWriter extends AbstractItemWriter {

    @Context
    private ChunkContext context;

    private static final Log LOG = LogFactory.getLog(MyFileWriter.class.getName());

    @Override
    public void writeItems(List<Object> items) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        System.out.println("Abrindo a transao");
        try {
            LOG.info("Writer chamado");
            for (Object operacao : items) {
                Operation op = (Operation) operacao;
                op.setCalculoProvisao(op.calcularProvisao());
                LOG.info(((Operation) operacao).toString());
                session.save(operacao);
            }
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        }
        System.out.println("Fechando a transao");
    }

}