| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2007 13:30:56
|
rafaelmeireles
JavaTeenager
Membro desde: 13/01/2004 16:12:22
Mensagens: 151
Offline
|
Pessoal em um ambiente web usando uma aplicação com JPA faço um select no banco normal, ai vou direto no banco e altero uma tupla da tabela e depois rodo a aplicação de novo, naum era para a JPA pegar essa alteração naum?
Um colega meu me mostrou isso, então vim testar na minha maquina onde a config é diferente atres de data source com JTA e tal e o funcionamento foi o mesmo.
Alguem saberia dizer pq ela se comporta assim?
|
Rafael Meireles |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2007 15:33:11
|
hugov
JavaEvangelist
Membro desde: 30/08/2004 14:14:23
Mensagens: 357
Offline
|
Se entendi bem até parece que algum cache está ativando , e a consulta não está
sendo efetuada na segunda vez.
|
Vitor Hugo
Analista Desenvolvedor Java
WebLog : http://emdia.wordpress.com/
Skype : hugov_br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2007 15:50:15
|
rafaelmeireles
JavaTeenager
Membro desde: 13/01/2004 16:12:22
Mensagens: 151
Offline
|
Se fizer select no banco aparece a linha nova, se a aplicação for iniciada de novo a alteração é mostrada, e se apos um find vc fizer:
Entidade entidade = entitymanager.find(entidade, id);
entidade = entityManager.refresh(entidade);
a alteração aparece tb, a impressão que da é que com o find ele naum vai no banco sei lá é meio estranha, pensava que seria um caso isolado desse meu colega mais aqui a config e totalmente deferente e se comportou da mesma forma.
|
Rafael Meireles |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2007 16:28:48
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline
|
Cara não sei qual framework vc esta usando mas o hibernate tem uma sessão onde ele armazena todos os objetos para evitar de ficar indo consultar o banco toda hora....
Num ambiente ideal o usuário nunca teria acesso ao banco de dados a não ser pela aplicação...se vc vai lá na mão e altera vc esta burlando essa idéia....
em todo caso existem métodos da session que resolvem seu caso como session.clean(); session.flush();
ok???
|
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi
<UnTouChAbLe> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2007 16:38:45
|
Claudio Nazzari
Debugger
![[Avatar]](/images/avatar/17834a259d3d4f21a1d6f100b015ec93.jpg)
Membro desde: 18/07/2006 09:59:56
Mensagens: 57
Offline
|
Voce precisa fazer um commit no JPA... faz assim:
Aonde o getEntityManeger vc substitui pelo seu EntityManager...
|
-------------------------
Claudio Nazzari
clanazzari@gmail.com
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/10/2007 09:03:41
|
rafaelmeireles
JavaTeenager
Membro desde: 13/01/2004 16:12:22
Mensagens: 151
Offline
|
isso é na hora de um find, naum prescisa comitar, agora seguinte, se ele faz isso alterando a base de dados e naum refletindo, quem me garante que quando outra aplicação alterar o banco ou ate a mesma aplicação em um ambiente distribuido alterara ele ira pegar o certo?
|
Rafael Meireles |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/10/2007 13:37:01
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline
|
Se vc trabalhar com sistemas distríbuidos não poderá usar essa funcionalidade do hibernate, com certeza.
Porém o hibernate não é um cara engessado tudo nele é configuravel...basta vc procurar na documenteção que tenho certeza q vc irá achar um mode de trabalhar dessa maneira...
|
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi
<UnTouChAbLe> |
|
|
 |
|
|