Insert record in the bank inside a for using hibernate

1

I need help, I'm trying to create a fixed expense post. I have to insert for example 12 records in the database, through a loop inside the for.

To insert the data I am using hibernate, but it only inserts a line, the 11 lines that it should insert it does not insert, already debuguei and there are no errors

for (int i = 1; i <= duracaoRepeticao; i++) {
                System.out.println("loop : " + i);
                Calendar calendar = new GregorianCalendar(); // cria gregorian calendar
                calendar.setTime(dataLancamento); // seta a data informada no formulario no calendar

                calendar.add(Calendar.MONTH, i); // seta incrementalmente (mensalmente) o mes, mantendo a data statica
                Date dataLancamentoIncremental = calendar.getTime();                   lancamentoDados.setDataLancamentoDados(dataLancamentoIncremental);
                lancamentoDados.setCategoria(lancamentoDados.getCategoria());
                lancamentoDados.setValorPagoLancamentoDados(123);
                lancamentoDadosDao.adiciona(lancamentoDados); // cadastra detalhes do lancamento, parcela, despesa fixa...
            }

This is the output in the tomcat log

Um por mes
loop : 1
data: Sat Jul 02 00:00:00 BRT 2016
Passei perto
Hibernate: 
    insert 
    into
        LANCAMENTO_DADO
        (LCD_COD_CAT_COD, LCD_COD_CTA_COD, LCD_DATAPARALANCAR, LCD_COD_PES_COD, LCD_COD_LCA_COD, LCD_STATUS, LCD_COD_SCT_COD, LCD_VALOR, LCD_VALORPAGO) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?)
Passe do session
loop : 2
data: Tue Aug 02 00:00:00 BRT 2016
Passei perto
Passe do session
loop : 3
data: Fri Sep 02 00:00:00 BRT 2016
Passei perto
Passe do session
loop : 4
data: Sun Oct 02 00:00:00 BRT 2016
Passei perto
Passe do session
loop : 5
data: Wed Nov 02 00:00:00 BRST 2016
Passei perto
Passe do session
loop : 6
data: Fri Dec 02 00:00:00 BRST 2016
Passei perto
Passe do session
loop : 7
data: Mon Jan 02 00:00:00 BRST 2017
Passei perto
Passe do session
loop : 8
data: Thu Feb 02 00:00:00 BRST 2017
Passei perto
Passe do session
loop : 9
data: Thu Mar 02 00:00:00 BRT 2017
Passei perto
Passe do session
loop : 10
data: Sun Apr 02 00:00:00 BRT 2017
Passei perto
Passe do session
loop : 11
data: Tue May 02 00:00:00 BRT 2017
Passei perto
Passe do session
loop : 12
data: Fri Jun 02 00:00:00 BRT 2017
Passei perto
Passe do session

Does anyone know how to help me?

    
asked by anonymous 02.06.2016 / 22:43

2 answers

0

Apparently the only thing that can give this problem is that its variable duracaoRepeticao is it really worth 12? printa it in the log so you can see ...

    
02.06.2016 / 22:51
0

The solution to enter data into the database by hibernate in a for

 for (int i = 0; i < duracaoRepeticao; i++) {  
                    // é necessario criar um novo objeto da classe LancamentoDados para ele inserir os registros, se nao ele soh insere o primeira linha
                    LancamentoDados dados = new LancamentoDados();
                    dados.setLancamento(lancamentoDados.getLancamento());
                    dados.setValorLancamentoDados(lancamentoDados.getValorLancamentoDados());
                    dados.setValorPagoLancamentoDados(lancamentoDados.getValorPagoLancamentoDados());
                    dados.setDataLancamentoDados(lancamentoDados.getDataLancamentoDados());
                    dados.setCategoria(lancamentoDados.getCategoria());
                    dados.setSubCategoria(lancamentoDados.getSubCategoria());
                    dados.setFornecedor(lancamentoDados.getFornecedor());
                    dados.setConta(lancamentoDados.getConta());
                    // ---------------------------------------------------------     
                    Calendar calendar = new GregorianCalendar(); // cria gregorian calendar
                    calendar.setTime(dataLancamento); // seta a data informada no formulario no calendar                    
                    calendar.add(Calendar.MONTH, i); // seta incrementalmente (mensalmente) o mes, mantendo a data statica

                    Date dataLancamentoIncremental = calendar.getTime();
                    dados.setDataLancamentoDados(dataLancamentoIncremental);
                    System.out.println(df.format(dataLancamentoIncremental));
                    lancamentoDadosDao.adiciona(dados); // cadastra detalhes do lancamento, parcela, despesa fixa...


                }
    
06.06.2016 / 21:07