2

私のデータソース構成:

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

1 つ以上のカテゴリ (子) を持つことができるカテゴリという名前のエンティティがあります。

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'
}

管理ページからプロパティを変更すると、カテゴリ インスタンスからの順序付けプロパティを例に挙げると、その変更は関連付けから親カテゴリに反映されないため、関連コレクションには変更された子の古いプロパティが含まれます。これを削除しようとしました:

  categories cache: 'nonstrict-read-write'

そして、カテゴリ関連は常に最新です。

カテゴリ インスタンスを更新するたびに、親カテゴリのカテゴリ関連に変更が通知されるようにするにはどうすればよいですか? デフォルトでこのように動作するべきではありませんか??

4

1 に答える 1

1

よし、見つけた!次のようにコレクション全体を削除する必要がありました: sessionFactory.evictCollection(Category.class.name + '.categories')

于 2012-07-30T11:46:56.573 に答える