| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2011 14:25:51
|
rogeriosantos77
Java Ninja
![[Avatar]](/images/avatar/6f760a053c4fc2b0e7a369b42fd7f68c.jpg)
Membro desde: 30/07/2007 15:00:53
Mensagens: 281
Localização: Jerusalém
Offline
|
Srs,
Quando eu anoto um método como @Transactional o default dele não é caso ocorra uma exception no método ele executar um rollback da transação ?
Pergunto isso pq criei um método e anotei ele com @Transactional e esse método persiste dados em duas tabelas distintas, porém em certo ponto do método ele faz um processamento e dependendo do resultado ele lança uma Exception (ServiceException é o nome da Excessão que o método lança), porém qdo ele lança a exception um rollback não ocorre. Na verdade o rollback soocorre se eu incluir o atributo rollbackFor={ServiceException.class} na anotação
É isso memso ? O lançamento de exception não é default para ocorrer rollback ?
|
Rogerio L Santos
@roglusa - Twitter |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2011 14:38:38
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1695
Offline
|
Cara, também tenho essa dúvida.
Com EJB funciona o rollback normal quando há alguma exception, mas com Spring se eu não informar o rollbackFor ele não funciona.
Será esse o comportamento esperado?
Até acredito que exista alguma configuração que se possa fazer pra não ser necessário, mas fico com a impressão que lá vem xml...
A propósito, eu conheço vc hehehe
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2011 06:41:34
|
rogeriosantos77
Java Ninja
![[Avatar]](/images/avatar/6f760a053c4fc2b0e7a369b42fd7f68c.jpg)
Membro desde: 30/07/2007 15:00:53
Mensagens: 281
Localização: Jerusalém
Offline
|
Balloni ? E ai blz?
Pelo jeito vamos continuar com a dúvida hein rs.
|
Rogerio L Santos
@roglusa - Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2011 06:53:42
|
FernandoFranzini
GUJ Master
![[Avatar]](/images/avatar/33f6c40df1060aa3c548ad2d499eced0.jpg)
Membro desde: 24/04/2009 12:58:16
Mensagens: 1541
Offline
|
rogeriosantos77 wrote:Srs,
Quando eu anoto um método como @Transactional o default dele não é caso ocorra uma exception no método ele executar um rollback da transação ?
Pergunto isso pq criei um método e anotei ele com @Transactional e esse método persiste dados em duas tabelas distintas, porém em certo ponto do método ele faz um processamento e dependendo do resultado ele lança uma Exception (ServiceException é o nome da Excessão que o método lança), porém qdo ele lança a exception um rollback não ocorre. Na verdade o rollback soocorre se eu incluir o atributo rollbackFor={ServiceException.class} na anotação
É isso memso ? O lançamento de exception não é default para ocorrer rollback ?
Nâo existe default de roolback no spring...vc tem que declarar qual é a exception que fara o rooback, uma vez que pode acontecer casos que em vc pode lancar um exception q não volte a transação corrente. Ou seja...é isso mesmo!
This message was edited 1 time. Last update was at 28/10/2011 06:56:52
|
Fernando Franzini |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2011 06:57:30
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1695
Offline
|
FernandoFranzini wrote:
rogeriosantos77 wrote:Srs,
Quando eu anoto um método como @Transactional o default dele não é caso ocorra uma exception no método ele executar um rollback da transação ?
Pergunto isso pq criei um método e anotei ele com @Transactional e esse método persiste dados em duas tabelas distintas, porém em certo ponto do método ele faz um processamento e dependendo do resultado ele lança uma Exception (ServiceException é o nome da Excessão que o método lança), porém qdo ele lança a exception um rollback não ocorre. Na verdade o rollback soocorre se eu incluir o atributo rollbackFor={ServiceException.class} na anotação
É isso memso ? O lançamento de exception não é default para ocorrer rollback ?
Nâo existe default de roolback no spring...vc tem que declarar qual é a exception que fara o rooback, uma vez que pode acontecer casos que em vc pode lancar um exception q não volte a transação corrente.
Bom, imagino que poderia ser default ele dar rollback quando houvesse exceção exceto nos que houverem declarados "norollbackfor" ou "rollbackonly".
Mas anyway, já está esclarecida a questão. Só seria legal se encontrássemos uma referência da documentação que indicasse isso. Procurando...
Obrigado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2011 07:33:36
|
FernandoFranzini
GUJ Master
![[Avatar]](/images/avatar/33f6c40df1060aa3c548ad2d499eced0.jpg)
Membro desde: 24/04/2009 12:58:16
Mensagens: 1541
Offline
|
Vc pode declarar o @Transaction em cima da classe que é assumido por padrão em todos os métodos...Com isso vc centraliza uma vez....
|
Fernando Franzini |
|
|
 |
|
|