Ola pessoal beleza!?
Pessoal estou com um problema aqui e estou precisando da ajuda de vocês. Eu tenho uma lista de um determinado objeto e gostaria de inserir este valor de cada objeto. Não necessariamente precisa ser em uma unica transação, o problema e que eu incluo a primeira, depois da uma execption “Exception occurred during event dispatching:
org.hibernate.TransactionException: Transaction not successfully started”. O codigo que tenho no meu metodo para incluir e este:
public void salva(DadosTimes times){
Transaction tx = session.beginTransaction();
DadoTime time = new DadoTime();
for(int i=0;i<times.size();i++){
time.setIdtimes(times.getIdtimes(i));
time.setNome(times.getNome(i));
time.setIdestados(times.getIdestados(i));
session.save(time);
tx.commit();
}
session.close();
}
Agradeço desde já por qualquer ajuda.
Cara pode nao ter nada a ver com o erro, mas a linha “DadoTime time = new DadoTime();” não teria que estar dentro do For?
public void salva(DadosTimes times){
Transaction tx = session.beginTransaction();
for(int i=0;i<times.size();i++){
DadoTime time = new DadoTime();
time.setIdtimes(times.getIdtimes(i));
time.setNome(times.getNome(i));
time.setIdestados(times.getIdestados(i));
session.save(time);
tx.commit();
}
session.close();
}
[quote=jokacwb]Cara pode nao ter nada a ver com o erro, mas a linha “DadoTime time = new DadoTime();” não teria que estar dentro do For?
[/quote]
Cara valeu pela dica…
Mas assim… no caso este cara e um VO, o que eu fiz foi so cria um objeto e vou pegando os valores da lista e atribuindo ao VO que vou mandar persistir no banco. Na verdade este objeto DadosTimes ele não contem um lista de objeto do tipo DadoTime, mas tem os valores, ou parametros deste VO. Mas valeu pela dica. Por desencargo de consiencia fiz um teste do jeito que falou e não deu pé…rsrsrs. Valeu brother.
Mas se tiver mais alguma ideia… manda ai… rsrs.
Colega,
Tente commitar após o loop.
[quote=luiz_renato]Colega,
Tente commitar após o loop.[/quote]
Brother ja fiz este teste… não deu certo tbm
public void salva(DadosTimes times){
Transaction tx = session.beginTransaction();
for(int i=0;i<times.size();i++){
DadoTime time = new DadoTime();
time.setIdtimes(times.getIdtimes(i));
time.setNome(times.getNome(i));
time.setIdestados(times.getIdestados(i));
session.save(time);
tx = session.getTransaction();
}
tx.commit();
session.close();
}
>
eae cara blz…Bom tenta fazer assim:
-
public void salva(DadosTimes times){
-
Transaction tx = session.beginTransaction();
DadoTime dados;
-
for(int i=0;i<times.size();i++){
-
dados = new DadoTime();
-
dados.setIdtimes(times.getIdtimes(i));
-
dados.setNome(times.getNome(i));
-
dados.setIdestados(times.getIdestados(i));
-
-
session.save(time);
-
tx = session.getTransaction();
-
15. tx.commit();
-
-
}
-
session.close();
-
}
ou uma sugestão:
-
public void salva(List times){
-
Transaction tx = session.beginTransaction();
DadoTime dados;
-
for(int i=0;i<times.size();i++){
-
dados = new DadoTime();
-
dados.setIdtimes(times.getIdtimes(i));
-
dados.setNome(times.getNome(i));
-
dados.setIdestados(times.getIdestados(i));
-
-
session.save(time);
-
tx = session.getTransaction();
-
15. tx.commit();
-
-
}
ou você ja que vc recebe o DadosTimes você adiciona em uma lista percorre ela add a lista e fora do for quando tiver todos os objetos na lista você da um save(); e commita…
Bom espero ter ajudado.
-
session.close();
- }
[quote=sergioteco]eae cara blz…Bom tenta fazer assim:
-
public void salva(DadosTimes times){
-
Transaction tx = session.beginTransaction();
DadoTime dados;
-
for(int i=0;i<times.size();i++){
-
dados = new DadoTime();
-
dados.setIdtimes(times.getIdtimes(i));
-
dados.setNome(times.getNome(i));
-
dados.setIdestados(times.getIdestados(i));
-
-
session.save(time);
-
tx = session.getTransaction();
-
15. tx.commit();
-
-
}
-
session.close();
-
}
ou você ja que vc recebe o DadosTimes você adiciona em uma lista percorre ela add a lista e fora do for quando tiver todos os objetos na lista você da um save(); e commita…
Bom espero ter ajudado.
- }
[/quote]
Valeu cara, mas ja tinha resolvido, ja ate coloquei isto no topico, mas muito obrigado. E isto mesmo que vc colocou… este codigo que você colocou funciona perfeitamente com uma unica mudança, o comit esta fora do for.
Obrigado mais uma vez.
legal que vc consegui é isso ai…
Beleza valew aii a resposta …