Problema talvez tomcat ou hibernate?

13 respostas
dijava

pessoal tenho uma aplicacao q estou usando tomcat e hibernate ja terminei e na minha maquina funciona perfeitamente qnd comecei a exportar para o servidor comecou a dar os problemas, o banco q estou usando é o postgres, localmente qnd tenho uma interação ele inseri no banco e atualiza na minha sessao normalmente, agora qnd eu faco isso usando o servidor ele salva no banco mas minha sessao nao fica sincronizada com o banco queria saber quais seriam os possiveis problemas para isso acontecer, lembrando q em qualquer insercao q uso depois eu sempre dou um “session.flush()”.

13 Respostas

renanreismartins

como assim sua sessao nao fica sincronizada ?

abrassss

acjZer0

Assim diferente do que muitos pensam o hibernate não atualiza o banco na hora,assim o mais correto e para cada operação exista uma sessão,tenta dar um close para você ver se ela não faz tudo que e requisitado ai você tenta outra operação com uma nova sessão.

caso esteja falando besteira por favor me ajudem :roll:

dijava

mas ele atualiza o banco, o q nao acontece é a atulizacao do objeto da sessao !

renanreismartins

acjZer0:
Assim diferente do que muitos pensam o hibernate não atualiza o banco na hora,assim o mais correto e para cada operação exista uma sessão,tenta dar um close para você ver se ela não faz tudo que e requisitado ai você tenta outra operação com uma nova sessão.

caso esteja falando besteira por favor me ajudem :roll:

ele atualiza no momento “mais conveniente”.
vc nao precisa de uma sessao por operaçao, o ideal é que realize tudo em uma mesma sessao, até pq assim o hibernate pode otimizar as idas ao banco.

abrasss

dijava

sim, mas o q eu nao estou entendendo é o pq de ele esta atualizando no banco e minha sessao pego o objt antigo?
ex : tem um obj com uma propiedade booleana “temCor” ai eu clico no botao para ativar a cor e no banco ele inseri true mas na tela ele ainda continua como false!

esse problema so acontece qnd app fica em um servidor e o banco em outro, pq estava testando na minha maquina ambas no mesmo “local fisico” e nao tinha problema algum!

dijava

acabei de ver q esse problema so acontece no IE 8 no firefox e no IE 7 fica blz, pode ser algum problema de seguranca,permissao ?

pdioniziofilho

Se vc chamar o metodo flush no hibernate as alterações que estão em sessão serao sim atualizadas no banco!

Seu objeto está retornando com o estado correto so que só está exibindo errado no IE 8 ? é isso?

pdioniziofilho

Se o estado do seu objeto estiver diferente do estado dos dados em banco, (o banco for o mais atual) utilize o metodo merge().

“Use merge() if you want to merge your modifications at any time without consideration of the state of the session.”

dijava

pode ser mas esse problema é so no IE 8 mesmo pq nos anteriores e no firefox ele funciona sem problema !

pdioniziofilho

ta estranho isso cara,

se der posta trechos do codigo.

dijava

ta muito esquisito isso, ele esta travando informações na memoria pos eu fecho o IE8 e abro de novo e as informações continuam da mesma foram q estava antes na ultima sessao e no banco esta da forma certa, ou seja ele esta prendendo o os objetos na memoria e qnd qnd volta ele ignora as informações do banco !!! Bizarro eu ate abri um novo toico falando do comportamento do IE8 http://www.guj.com.br/posts/list/0/198980.java#1000169

pdioniziofilho

vc tem certeza que deu CTRL + F5 na pagina né? nao tem nada em cache de browser nao?

dijava

sim cara isso ta muito estranho, so acontece no IE8, mas se o banco estiver no mesmo host ele funciona perfeito esquisito de mais deve ser alguma configuração nele só consigo enxergar isso!!!

Criado 22 de fevereiro de 2010
Ultima resposta 23 de fev. de 2010
Respostas 13
Participantes 4