JPA+JSF+RichFaces. Altera no banco, não altera na tela!  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
vartao
HelloWorld
[Avatar]

Membro desde: 20/10/2007 15:27:01
Mensagens: 10
Offline

Olá...

estou com problemas na atualização dos dados de um formulário utilizando JPA+JSF+RichFaces.
Ao editar um objeto, é persistido no banco as alterações, porém na tela elas não aparecem.

Se eu o tomcat for resetado, as alterações são mostradas corretamente na tela.

Código da classe responsável por realizar a persistencia.



Managed Bean responsável pela chamada



Alguém saberia me dizer o que pode estar errado?


Obrigado.
rdantas
Java Ninja
[Avatar]

Membro desde: 12/02/2005 01:32:20
Mensagens: 263
Localização: Formiga-MG
Offline

Cara, tive um problema parecido estes dias. Seu (entenda por nosso ) problema não é a forma como está persistindo, mas sim, como vc está buscando a informação do banco. Vc tem que usar transação para fazer as consultas também.


Espero ter ajudado,
Rodrigo.

Desenvolvedor Java
Java em Pó - Blog para assuntos Java
"Só Deus salva, os mortais fazem backup!!!"
[MSN] [ICQ]
vartao
HelloWorld
[Avatar]

Membro desde: 20/10/2007 15:27:01
Mensagens: 10
Offline

Obrigado Rodrigo, mas ainda não deu certo.

o método para recuperacao do usuario no banco (na mesma classe do metodo responsavel pela persistencia):


Após sua sugestão o código ficou assim:


Mesmo assim, não funcionou. É alterado certinho no banco de dados, porém só aparece as alterações na tela, se o tomcat for reiniciado.

Fiz algo errado?

O problema não seria no JSF? Não seria o o managed bean que não está atualizando o objeto?

mrmarcondes
Thread.start()

Membro desde: 02/08/2007 09:50:01
Mensagens: 34
Offline

Ola,

o escopo do seu managed bean eh session? voce esta fazendo a pesquisa novamente apos a atualizacao dos registros? voce tem definido no faces-config.xml o "voltar"?

Em tempo, para pesquisa nao eh necessario transacoes.
Abracos,
Marco.

This message was edited 1 time. Last update was at 02/04/2008 13:10:00

vartao
HelloWorld
[Avatar]

Membro desde: 20/10/2007 15:27:01
Mensagens: 10
Offline

Caro Marcos,

os managed beans estão sim com escopo de sessão. A String "voltar" também está descrita nas regras de navegação no faces-config.xml.

Após atualizar objeto, está sendo aberta a página correta. Porém os valores que estão contidas nela é de antes da alteração.


O que poderá ser?


obrigado
lgweb
GUJ Master

Membro desde: 03/05/2007 20:59:55
Mensagens: 1048
Localização: Curitiba-PR
Offline

posta o jsp para analisarmos aew, tive este problema com um datatable e resolvi chamando o meto que o popula sempre que salvo ou edito algum dado.

Vc gosta de criar topicos duplicados?
Nao utiliza a busca antes de postar?



veja:
http://www.youtube.com/watch?v=8zFYt1_0FUE&NR=1
[Email] [WWW] [MSN]
vartao
HelloWorld
[Avatar]

Membro desde: 20/10/2007 15:27:01
Mensagens: 10
Offline

mensagens.jsp



Managed bean desta página (configurado como ControllerMensagem no faces-config.xml)


O fluxo é o seguinte:
É apresentado a página mensagens.jsp (até aqui, é apresentado os valores corretamente). Nela contém um link para a página de alteração cadastral. Quando o usuário é encaminhado para esta página e efetua alguma alteração, ele é encaminhado de volta para cá (mensagem.jsp). O problema é que, ao retornar da alteração, é apresentado os valores do objeto antes da alteração. Os valores não são atualizados na tela.


Espero ter conseguido explicar direito a situação.

obrigado


mrmarcondes
Thread.start()

Membro desde: 02/08/2007 09:50:01
Mensagens: 34
Offline

Vartao,

substitua seu metodo getUsuario()

por:



O que acontece eh que como seu escopo e de sessao, a segunda vez que entra em mensagem.jsp seu Usuario ja esta preenchido, portanto ele nao entra if (this.usuario == null), ou seja, ele acaba mostrando o valor que ja esta na sessao.

Na verdade mesmo, o ideal seria voce colocar o codigo do setUsuario no getUsuario, pois fica esquisito no getUsuario() voce chamar o setUsuario().



Marco.

This message was edited 2 times. Last update was at 02/04/2008 18:48:48

vartao
HelloWorld
[Avatar]

Membro desde: 20/10/2007 15:27:01
Mensagens: 10
Offline

Grande Marco!!! Foi isso mesmo. PROBLEMA RESOLVIDO.

Está aplicação faz parte do meu trabalho de conclusão de curso.
Defendo ele na segunda agora. Você não tem idéia de como me ajudou! Muito obrigado!!!

Obrigado a todos que responderam!

abs.

Vartão
tiagoemerick
Debugger
[Avatar]

Membro desde: 09/04/2007 17:26:24
Mensagens: 59
Localização: Brasília - DF
Offline

cara.. desculpe reativar um post antigo, mas não encontrei a resposta nem a pau pela net afora...


o meu caso é parecido só que o contrario!!!
to numa lista de registros. clico no link de um registro e abre a tela de edicao corretamente.
edito alguns dados e clico em alterar. no metodo o obj nao altera!!!

ou seja.. o obj ta com os valores antigos quando apresentei na tela e nenhum campo veio com o valor novo!!!
o bean ta de scope session!


algum pode me ajudar??
isso ta me deixando louco a dias ja!

Tiago A. Emerick
[Email] [MSN]
mrmarcondes
Thread.start()

Membro desde: 02/08/2007 09:50:01
Mensagens: 34
Offline

Tiago,

posta seu bean e seu jsf para darmos uma olhada.

Abracos,
Marco.
tiagoemerick
Debugger
[Avatar]

Membro desde: 09/04/2007 17:26:24
Mensagens: 59
Localização: Brasília - DF
Offline

Minha action...


Bean Conta(que é o bean que eu estou com problema que nao vem os valores alterados)



E a JSP que passa pela action acima, traz os dados corretamentes, mas ao alterar algo e jogar na mesma action acima, ainda ta com os valores antigos e nao os novos..



Nesta JSP tem um esquema com o javaScript pra habilitar um campo, mas esquece isso.. tava em fase desenvolvimento.. nada a ver, ok?!

Quem puder me ajudar!!
Agradeco mt!

Tiago A. Emerick
[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team