我在使用通过 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 或其他原因的缓存问题?
你能帮我一把吗?
谢谢