我使用grails 2.5.1和hibernate4:4.3.5.5
每次我使用休眠查询,例如:
Domain.get(id)
或Domain.createCriteria
等。
有时是随机加载旧数据。
基本上是会话中的休眠缓存存储,因此,每次运行休眠查询之前,我都会先sessionFactory.currentSession.clear()
调用此语句。
例如:
sessionFactory.currentSession.clear()
def domainInstance = DomainName.get(id)
工作正常。但是我认为这不是一个好习惯。和我的配置文件: DataSource.groovy
冬眠
e {
//cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
//cache.region.factory_class = 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory' // Hibernate 4
cache.use_second_level_cache = false
cache.use_query_cache = false
// cache.region.factory_class = 'org.hibernate.cache.SingletonEhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
flush.mode = 'auto' // OSIV session flush mode outside of transactional context
connection.characterEncoding = "utf-8"
connection.useUnicode = true
jdbc.use_get_generated_keys = true
connection.defaultNChar = true
}