Tratar exception com vRaptor 3  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Tem um could not execute query, ou seja, aparentemente algo com o Hibernate.

O que você tem no método br.com.bsbmotos.dao.MarcaDao.listarTudo?

http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Garcia, sobre o erro, ainda creio que deva ser eu tentando deletar uma marca que está relacionada com um produto.
EDIT: Sei disso pois quando deleto o produto que tem aquela marca, consigo deletar a marca em seguida tranquilamente.

This message was edited 1 time. Last update was at 16/10/2010 12:08:15


developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Ainda não tenho solução para isso.
Se alguém souber de algo aê, por favor.

Obrigado!

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

Então, Mr_Arthur,

geralmente vc não consegue deletar um registro se tem outro registro relacionado a ele...

ou seja, se tem um produto relacionado a uma marca, vc não pode deletar essa marca...

se vc quiser deletar só a marca vc vai ter que fazer algo do tipo:
- selecione todos os produtos que são dessa marca
- sete a marca como null nesses produtos
- delete a marca

se outras entidades se relacionam com marca, vc tem que fazer a mesma coisa...

outra coisa q vc tem que ver é se faz sentido ter um produto sem marca

--
Caelum
www.caelum.com.br

Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Lucas, obrigado pela resposta.

Agora seguinte, não há um problema com o Exception Handler?
A exception acontece no momento em que eu faço o flush na minha dao. A dao é chamada dentro da lógica da minha Controller.
O redirecionamento para a minha lógica não deveria acontecer?

Obrigado.

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Arthur, não sei bem se isso é um erro no exception handler. Tenho usado ele em alguns projetos meus e tem funcionando bem. Pode ser que você tenha pego algum caso bem atípico, talvez alguma nested-bizarre exception, já que o hibernate adora fazer isso.

Vou fazer um teste aqui em uma aplicação real para ver se consigo reproduzir o erro.

http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

se a exception acontece antes do result.redirectTo deveria estar funcionando...

se acontece depois do result.redirectTo não vai funcionar

--
Caelum
www.caelum.com.br

Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Lucas Cavalcanti wrote:se a exception acontece antes do result.redirectTo deveria estar funcionando...

se acontece depois do result.redirectTo não vai funcionar


Ah cara, então deve ser isso.
Eu estou colocando na inicialização de cada método.
Achei que era tipo um aviso.
"Olhá, se acontecer essa exception vai pra lá." e não "Olhá, aconteceu essa exception? vai pra lá."

Vou testar, valeu!

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Pessoal, sem sucesso ainda.
Testei de diversas formas...





E dentro da DAO, para cada teste acima, após o delete utilizei e não utilizei o flush().
Garcia, vou esperar sua resposta sobre sua simulação...

Obrigado!

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6394
Offline

a exception está acontecendo na linha dao.exclui(marca) mesmo? Não é no commit da transação?

--
Caelum
www.caelum.com.br

Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Isso Lucas,
está acontecendo na hora que eu faço o session.flush() após o session.delete() dentro do método exclui(marca).

Debugando usando o eclipse, imediatamente após a execução do flush(), o modo debug me abre a ExecuteMethodInterceptor. E assim eu encerro meu fluxo pressionando F8.

É isso aê.

Obrigado!

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Mr_Arthur, dá para fazer um teste criando esse componente aqui?


http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

quando eu pegar o notebook (estou no trabalho, nem dá aqui),
faço imediatamente.

Obrigado!

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
Mr_Arthur
Java Ninja
[Avatar]

Membro desde: 02/02/2007 10:54:04
Mensagens: 285
Localização: Brasília - DF
Offline

Seguite... O erro mudou.
Segue o interceptor que o garcia me pediu para adicionar. (tirei o do vraptor do que tava no provider)

A classe:


O log:


Cara... Segundo o log, parece que ele detectou a exception tudo certinho... Segue a parte do log:


Porém eu ainda sou redirecionado para uma jsp com stacktrace de erro que veio do servidor: :/


Obrigado!

developer in brasília.
scjp, scwcd, ocpbcd.

@armoucar
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team