【发布时间】:2015-08-05 20:56:11
【问题描述】:
我正在管理数据库(文件夹表)中的文件夹列表。我正在创建文件夹并获取文件夹,每个文件夹都将前一个文件夹的 id 存储在列表中(类似于链表),因此可以在两个现有文件夹“之间”插入一个文件夹。所以一个文件夹有一个“id”字段和一个“prev_folder_id”字段。 'prev_folder_id' 可能是其他现有文件夹的 id 为零。
添加新文件夹时:
- 在 DB 中创建和存储新文件夹
- 将链表中下一个文件夹的 prev_folder_id 更改为指向新文件夹。
数据库中的数据已正确更改。但是,我看到的问题是,在获取文件夹列表时,下一个文件夹仍然指向旧的 prev_folder_id 而不是新的。如果我多次触发相同的获取请求,我有时会得到旧信息,有时会得到新的正确信息。
以下是我在DataSource.groovy中的hibernate配置:
hibernate {
cache.use_second_level_cache = false
cache.use_query_cache = false
// cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
flush.mode = 'auto' // OSIV session flush mode outside of transactional context
format_sql = false
use_sql_comments = true
}
我猜问题出在缓存上,但是所有缓存选项都被禁用了。什么可能导致这种行为?
【问题讨论】: