Fazer rollback em EJB CMT  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
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)
[Email] [WWW] [MSN]
jakefrog
GUJ Expert
[Avatar]

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!
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)
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team