grails中的缓存设置

时间:2012-07-30 10:10:48

标签: caching grails associations ehcache

我的数据源配置:

hibernate {
 cache.use_second_level_cache = true
 cache.use_query_cache = true
 cache.provider_class='org.hibernate.cache.EhCacheProvider'
}

我有一个名为Category的实体,可以有一个或多个类别(子)

class Category{
 int ordering
 static hasMany = [categories: Category]


 static mapping = {
    categories(sort: "ordering", order: "asc")
    sort "ordering"
    cache usage: 'nonstrict-read-write'
    categories cache: 'nonstrict-read-write'
}

当我从管理页面更改属性时,假设来自类别实例的排序属性,该更改不会从与父类别的关联反映出来,因此assoc集合具有已更改子项的旧属性。 我试图删除它:

  categories cache: 'nonstrict-read-write'

然后类别assoc总是最新的。

我如何确保每次更新类别实例时,将通知更改父类别的类别assoc?默认不应该像这样工作吗?

1 个答案:

答案 0 :(得分:1)

好吧,我找到了! 我不得不像这样驱逐整个系列:       sessionFactory.evictCollection(Category.class.name +'。categories')