2012-07-30 74 views
2

我的数据源配置:缓存设置

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

我有一个实体的命名分类,可以有一个或多个类别(儿童)

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命令始终是过时了。

我如何确保每次更新类别实例时,父类别的相关类别都会通知更改?不应该这样默认工作?

回答

1

好的我找到了! 我不得不像这样驱逐整个集合: sessionFactory.evictCollection(Category.class.name +'.categories')