Pessoal como eu faço para propagar um objeto imediatamente ex:
[code]
public void save(Cliente cliente) {
…
dao.save(cliente);
result.include(“cliente”, cliente);
result.forwardTo("/WEB-INF/jsp/cliente/visualizacao.jsp"); // <-- o objeto cliente não chega atualizado, poque o HibernateCustomProvider faz commit depois ???
}[/code]Se eu usar o redirectTo funciona, mas ficaria mais otimizado com o forwardTo pois o submit do formulario é via ajax…
não faça forward para jsp direto se vc tiver uma lógica pra ela…
no seu caso por exemplo seria:
result.forwardTo(this).visualizacao();
//ou
result.forwardTo(ClienteController.class).visualizacao();
o commit só acontece no final da requisição mesmo… e o forward tah na mesma requisição…
tenta fazer um session.flush() no seu dao.save();
[]'s
Lucas, obrigado pela resposta…
Mesmo com o flush parece não ter diferença…
o que vc quer dizer com não vem atualizado? não vem com o id?
Olá Lucas, vem com o id só não vem com os relacionamentos preechidos…
hum… não sei se isso funciona, mesmo que vc tivesse comitado a transação…
vc tem o método visualização, certo?
vou supor que ele é assim:
public void visualizacao(Long id) {
Cliente cliente = dao.findById(id);
result.include("cliente", cliente);
}
então seu método save pode ser:
public void save(Cliente cliente) {
...
dao.save(cliente);
result.forwardTo(this).visualizacao(cliente.getId());
}
creio que assim funcione do jeito q vc quer