2

我在使用通过 Glassfish 3 的 JDBC 池时遇到了 hibernate hibernate-core-3.5.4-Final 的问题。

但是,当我对其运行查询时,会从数据库中获取旧数据。这是方法:

 String queryString = "FROM EntityObject WHERE name = :name  order by startDate desc";

 Query query = session.createQuery(queryString);
 query.setParameter("name", "Smith");
 query.setMaxResults(1);
 EntityObject entityObject = (EntityObject) query.uniqueResult();

休眠配置:

 <hibernate-configuration>
    <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">true</property>
        <property name="current_session_context_class" >thread</property>
        <property name="hbm2ddl.auto">validate</property>
        <property name="show_sql">false</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="javax.persistence.validation.mode">none</property>
        <property name="hibernate.connection.datasource">jdbc/ClusterDatasource</property>
        <property name="hibernate.cache.use_second_level_cache">false</property>
        <property name="hibernate.cache.use_query_cache">false</property>

        <mapping ...  />
    </session-factory>
</hibernate-configuration>

以及具有默认值的 Glassfish 池。

我在类的构造函数中创建会话如下:

 sessionFactory = new Configuration().configure(CONFIG_FILE).buildSessionFactory();
 session = sessionFactory.openSession();
 session.setDefaultReadOnly(true);
 session.setCacheMode(CacheMode.IGNORE);

我不知道这是否是休眠和/或 glassfish 或其他原因的缓存问题?

你能帮我一把吗?

谢谢

4

0 回答 0