2

我的数据源配置:

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'

然后类别关联总是最新的。

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

4

1 回答 1

1

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

于 2012-07-30T11:46:56.573 回答