| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/01/2012 10:20:11
|
rogerioeerr
JavaChild
Membro desde: 10/04/2007 14:17:26
Mensagens: 111
Offline
|
boa tarde pessoal, ja estou a dias com este problema e ainda não consegui uma solução, atravez do livro EJB 3 in action obtive a informação que ao anotar minha excessão personalizada com
@ApplicationException(rollback = true) meu minha exceção executaria um rollback na aplicação porém não obtive exito, vou postar o código.
bem estou fazendo testes na segunda interação, ou seja a primeira é satisfeita e o produto é atualizado com a nova quantidade de estoque, já na segunda interação minha validação de negocios estoura um BusinessException,
porém ao sair do método a minha primeira ação é feita no banco quando na verdade era pra ser "desfeita"..
segue meu ejb.
|
"Os computadores são incrivelmente rápidos, precisos e burros; os homens são incrivelmente lentos, precisos e brilhantes; juntos, seu poder pode ultrapassar os limites da imaginação." (Albert Einstein) |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/01/2012 12:56:57
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4191
Offline
|
Disso aqui você não precisa: @TransactionManagement(TransactionManagementType.CONTAINER), pois já é o valor default.
Se você quer que o container dê o rollback você precisa estourar o erro e nunca tratá-lo.
Ou seja, onde o método é invocado, você precisa mandar um throw new BusinessException("erro");
Com isso, o container irá realizar o rollback. Se quem estiver chamando o método atualizaEstoque estiver dentro do pacote EJB e capturar a chamado em um try/catch, não irá rolar rollback normalmente.
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/01/2012 16:44:36
|
rogerioeerr
JavaChild
Membro desde: 10/04/2007 14:17:26
Mensagens: 111
Offline
|
ta ai um problema, minha regra esta fazendo a verificação no meu Managed Bean, o ejb é apenas o método que chama o.
|
"Os computadores são incrivelmente rápidos, precisos e burros; os homens são incrivelmente lentos, precisos e brilhantes; juntos, seu poder pode ultrapassar os limites da imaginação." (Albert Einstein) |
|
|
 |
|
|
|
|