| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2009 12:48:06
|
joaoorso
JavaTeenager
![[Avatar]](/images/avatar/25819c8fe224033cc89bafa6a16cdd04.jpg)
Membro desde: 23/11/2006 21:48:55
Mensagens: 179
Localização: Curitiba - PR
Offline
|
Boa tarde.
Bem primeiramente quero pedir desculpas ao moderador caso esteja duplicando o assunto; mas pesquisei e não encontrei o que procurava.
tenho uma consulta em SQL nativo executada da sequinte forma :
O que acontece é que a tabela t005parametro é alterada por um outro sistema; o hibernate não refaz a consulta e pega as informções de seu cache. O que resulta em informações inconsistentes .
Algém sabe como resolver isso ?
Agradeço a todos que responderem.
|
João Ricardo Orso .
SCJP 5.0.
TSI
----------------------------------------------------------------
Os níveis de visibilidade do Java são: public, default, protected, private e " protected by Chuck Norris ", não tente acessar um atributo com este último modificador.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2009 13:54:21
|
joaoorso
JavaTeenager
![[Avatar]](/images/avatar/25819c8fe224033cc89bafa6a16cdd04.jpg)
Membro desde: 23/11/2006 21:48:55
Mensagens: 179
Localização: Curitiba - PR
Offline
|
Pessoal ... será que deu pra entender o que escrevi ?
Eu quero obrigar o hibernate a fazer a consulta no BD novamente.
Não quero que ele faça a busca dos dados no cache como está ocorrendo.
|
João Ricardo Orso .
SCJP 5.0.
TSI
----------------------------------------------------------------
Os níveis de visibilidade do Java são: public, default, protected, private e " protected by Chuck Norris ", não tente acessar um atributo com este último modificador.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2009 14:22:42
|
renanreismartins
GUJ Ranger
![[Avatar]](/images/avatar/b43a306ca1e27299a57727ff5c0d4998.jpg)
Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline
|
deu sim amigo, achei interessante seu problema, até procurei rapidamente por uma solucao. sei q o hibernate tem cache de 1o e 2o nivel, bem como query cache... estou acompanhando o topico, vou estudar sobre o assunto caso encontre solucao eu posto aqui.
se vc encontrar, por favor compartilhe
abrassss
|
http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2009 17:46:51
|
emanuelCruz
JavaChild
![[Avatar]](/images/avatar/55239af1c37bfd60de353c6394b7b8c8.jpg)
Membro desde: 18/12/2007 12:42:50
Mensagens: 110
Offline
|
Tenta isto:
|
***
Emanuel |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/06/2009 09:57:35
|
joaoorso
JavaTeenager
![[Avatar]](/images/avatar/25819c8fe224033cc89bafa6a16cdd04.jpg)
Membro desde: 23/11/2006 21:48:55
Mensagens: 179
Localização: Curitiba - PR
Offline
|
Não ... não Rolou Implementei esse método com conexão via JDBC (sem usar o Hibernate); só assim consegui fazer funcionar direito. O ruim é que agora fiquei com duas formas de conexão com o banco no projeto POG... mas deu certo. acho que o deve apenas desabilitar o cache de segundo nível assim como essas linhas que vão no hibernate.cfg.xml eu acho ....
This message was edited 2 times. Last update was at 25/06/2009 10:05:04
|
João Ricardo Orso .
SCJP 5.0.
TSI
----------------------------------------------------------------
Os níveis de visibilidade do Java são: public, default, protected, private e " protected by Chuck Norris ", não tente acessar um atributo com este último modificador.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2009 09:49:45
|
joaoorso
JavaTeenager
![[Avatar]](/images/avatar/25819c8fe224033cc89bafa6a16cdd04.jpg)
Membro desde: 23/11/2006 21:48:55
Mensagens: 179
Localização: Curitiba - PR
Offline
|
Bem ... Vamos Reviver o tópico que a situação é parecida.
Tem uma classe que por motivo de força maior eu faço um insert na mão assim :
e também faço um select na mão assim
O problema é que as vezes quando depois de alterar um bem , vou consulta-lo novamente e ele aparece desatualizado.
Provavelmente devido ao cache do hibernate .
Alguém já passou por isso ?
Se o hibernate não identifica um insert ou update feito na mão . Por qual motivo ele permite que eu o faça ?
|
João Ricardo Orso .
SCJP 5.0.
TSI
----------------------------------------------------------------
Os níveis de visibilidade do Java são: public, default, protected, private e " protected by Chuck Norris ", não tente acessar um atributo com este último modificador.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2009 10:01:56
|
renanreismartins
GUJ Ranger
![[Avatar]](/images/avatar/b43a306ca1e27299a57727ff5c0d4998.jpg)
Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline
|
amigo acredito que se vc chamar o metodo clear() do obj session de certo
abrassss
|
http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2009 10:07:14
|
bKn
Java Ninja
Membro desde: 07/04/2009 15:22:18
Mensagens: 288
Offline
|
O hibernate identifica o comando, porém fica esperando por outro para que os execute todos de uma vez.
A sessão do hibernate é o cache de primeiro nível, que faz o que eu disse acima.
Este código não está funcionando como deveria. Ao fechar a sessão, o hibernate executaria todos os comandos pendentes na sessão na base de dados. Provavelmente é alguma falha no seu HibernateUtil.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2009 21:32:45
|
agodinhost
Virtual Machine Man
![[Avatar]](/images/avatar/b8ffa41d4e492f0fad2f13e29e1762eb.jpg)
Membro desde: 28/03/2006 21:19:16
Mensagens: 590
Localização: RJ, Tijuca
Offline
|
Estou com um problema semelhante, contudo em uma view. Tenho definido duas entidades, a tabela principal e uma view em cima dessa tabela.
tentei session.evict( MinhaClasse.class) e até o clear e nada, volta sempre o resultado do cache.
achei uma property para o hibernate cfg mas ela desabilita TODO o cache do sistema e isso pode impactar na performance da app.
achei no google isso, http://docs.jboss.org/hibernate/stable/core/reference/en/html/batch.html#batch-statelesssession, que nada mais é que fazer o acesso direto ao banco com o hibernate.
Ainda tentando fazer essa coisa funcionar ...
Que saudades do iBates.
Woody
|
"The difference between theory and practice is that, in theory, there is no difference between theory and practice". |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/08/2009 21:50:00
|
agodinhost
Virtual Machine Man
![[Avatar]](/images/avatar/b8ffa41d4e492f0fad2f13e29e1762eb.jpg)
Membro desde: 28/03/2006 21:19:16
Mensagens: 590
Localização: RJ, Tijuca
Offline
|
Funcionou de primeira.Em vez do tradicional HibernateUtils.getCurrentSession() estou usando o perigoso HibernateUtils.getSessionFactory().openStatelessSession() - eu digo perigoso porquê se algum desavisado fizer copy and paste de um método desses e executar alguma mudança na base ele pode melar todo meu cache ne?
Só acho que o hibernate DEVERIA ter alguma configuração pra dizer que eu não quero cache para uma determinada entidade. (ele não tem mesmo?)
Woody
This message was edited 1 time. Last update was at 24/08/2009 21:51:25
|
"The difference between theory and practice is that, in theory, there is no difference between theory and practice". |
|
|
 |
|
|