Hibernate não traz dados atyualizados do banco, alimentado por outro sistema!
11 respostas
aorocha
Pessoal estou com um problema tenho uma aplicaçao web, que alimenta e faz consulta numa base de dados, os dados alimentados por essa aplicação são atulizados numa boa, mas tenho outra aplicação desktop que alimanta a mesma base, só que o dados alimentados por essa aplicação não aparece na aplicação web, só quando dou shutdown no tomcat e startup ai ele encherda os dados que a outra app alimentaou, alguém sabe como resolvo isto?
Recomendo uma dieta de folhas por aproximadamente 4 semanas.
Ou você pode verificar se a webapp não trabalha com os dados em memória, que são carregados quando a aplicação é inicializada junto ao Tomcat.
A
alots_ssa
Nao sei se esta correto o que vou dizer, mas como o objetivo e ajudar. Acho que o hibernate faz um esquema de cache dos objetos a partir da primeira listagem dele, ve se nao tem como desabilitar essa opcao.
Alberto
aorocha
É pode ser isso, mas como faço isto, sou leigo em hibernate!
Mauricio_Linhares
Você está usando o cache do Hibernate? Se estiver, desablite ele agora e veja o que acontece.
Se não for isso, boa sorte companheiro, porque é mágica
aorocha
Para desabilitar o cache é algum comando que dou eo é conf. no xml.
aorocha
Estou usando tambem query name, e acontece a mesma coisa.
<query name="login">
<![CDATA[
from PerSist p
...
tem que alguma fonfiguração aqui tambem?
Mauricio_Linhares
Não, não tem nada haver não. Se você nem sabe o que é o cache, é porque não está usando mesmo.
Não consigo saber como é que ele não está carregndo as informações. Tem certeza de que você não está guardando nada?
aorocha
Quando vou buscar dados faço isto
public List list(Class clazz) {
HibernateUtilMySqlGerusa.getSession().flush();
return HibernateUtilMySqlGerusa.getSession().createCriteria(clazz).list();
}
falta algo, ou tem algo errado ai?
F
flaleite
Procure no cfg.xml por alguma coisa relacionada a cache…
Outras possibilidades é que o outro sistema não “commitou” as alterações, ou que seu sistema retenha essa informação em um cache interno, e não esta acessando essa sua função.
aorocha
o meu cfg.xml esta assim:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><propertyname="hibernate.cglib.use_reflection_optimizer">true</property><propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><propertyname="hibernate.connection.password">..</property><propertyname="hibernate.connection.url">jdbc:mysql://10.84.227.248:3306/gerusa</property><propertyname="hibernate.connection.username">..</property><propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- Condiguração do c3p0 --><propertyname="hibernate.c3p0.max_size">10</property><propertyname="hibernate.c3p0.min_size">2</property><propertyname="hibernate.c3p0.timeout">5000</property><propertyname="hibernate.c3p0.max_statements">10</property><propertyname="hibernate.c3p0.idle_test_period">3000</property><propertyname="hibernate.c3p0.acquire_increment">2</property><!-- Configurações de debug --><propertyname="show_sql">true</property><propertyname="use_outer_join">true</property><propertyname="hibernate.generate_statistics">true</property><propertyname="hibernate.use_sql_comments">true</property><!-- Tabelas do banco --><mappingresource="br/com/maringa/compGerusa/usuario/Usuario.hbm.xml"/><mappingresource="br/com/maringa/compGerusa/sistema/Sistema.hbm.xml"/><mappingresource="br/com/maringa/compGerusa/permissao/Permissao.hbm.xml"/><mappingresource="br/com/maringa/compGerusa/menu/Menu.hbm.xml"/><mappingresource="br/com/maringa/compGerusa/perSist/PerSist.hbm.xml"/><mappingresource="br/com/maringa/compGerusa/portal/Portal.hbm.xml"/><mappingresource="br/com/maringa/compGerusa/usuarioPortal/UsuarioPortal.hbm.xml"/></session-factory></hibernate-configuration>
F
flaleite
aorocha:
o meu cfg.xml esta assim:
…
No mesmo instante que vc faz a pesquisa pelo hibernate se vc fizer o select no direto no BD as informaçãoes estão atualizadas lá?