VRaptor + controle de transação

Oi pessoal, boa noite

Estou com um problema no controle de transação do VRaptor.

Utilizo o hibenarte no web.xml para que o VRaptor O VRaptor abra a Session e começa uma transação no início da requisição e fecha a Session.

br.com.caelum.vraptor.packages
br.com.caelum.vraptor.util.hibernate

Mas preciso que ele abra a Session cada vez que entrar em um método da controller, pois tenho um método save e um list na controller, mas quando salvo e faço um forward para o list o objeto salvo não vem pois não foi fechada a transação ainda. Depois que chamo o método list novamente o objeto salvo aparece.

Como abrir uma Seesion por cada método da controller??

troque o forward por um redirect… é mais adequado após um POST que cria um objeto. isso resolve o seu problema.

Lucas, boa noite

  1. Não entendi bem esta diferença e porque com o result.redirectTo funciona?..Poderia explicar melhor?
    ? result.forwardTo(?/uma/outra/pagina.jsp?): redirecionamento do lado do servidor para a página especi?ficada.
    ? result.redirectTo(?/uma/outra/pagina.jsp?): redirecionamento do lado do cliente para a página especi?ficada.

  2. No capitulo 16 (Integrando VRaptor e Spring) da apostila do VRaptor. Qual a vantagem de fazer essa implementação?

  3. Qual a vantagem de usar o [br.com.caelum.vraptor.util.hibernate] pois o mesmo abre a transação a cada request, sendo que nem todos os métodos da controller precisa de uma transação? Não seria melhor abrir uma transação para cada método da controller?

no forward, tudo fica do lado do servidor… no redirect, a requisição volta pro cliente e ele faz automaticamente uma nova requisição pro endereço informado.

a vantagem de se integrar com o Spring é que já tem um monte de coisa pronta pra ele (transaçoes, segurança, conexões, mensagens, jobs, etc)

a vantagem de usar o pacote do hibernate do vraptor é vc não precisar ficar se preocupando com onde abrir e fechar transaçoes toda hora. Mas isso é uma abordagem simplista… se vc quiser um controle mais fino pode usar o do spring.