我有以下问题。在 grails 中,假设我有以下关系:
class Shop {
static hasMany = [category: Category]
String name;
.... (additional shop attributes)
}
class Category {
static belongsTo = [Shop]
static hasMany = [item: Item]
String name;
... (additional category attributes)
}
class Item {
static belongsTo = [Category]
String name;
double price;
... (additional item attributes)
}
AShop
有许多不同类型的类别,例如Diary
,Household
等。每个类别可以有多个项目,例如Milk
,Cheese
等。
它们都是单向关系。
我正在使用休眠事件侦听器来捕获插入/更新/删除后发生的更改。如果我只对每个级别发生的事情感兴趣,那就太好了。例如,如果一个项目的价格发生了变化,从休眠事件,我可以到达项目实体,我会知道价格字段随着项目 id xxx 的变化而变化。
但是,我想将更改关联回Shop
级别,以便进行一些有意义的审计跟踪。如果我只更改特定商品的价格,我将在商品级别使用休眠中的 postupdateevent 来获取实体。有没有办法递归地回到这个Shop
级别,这样我就可以生成一个审计跟踪(shopId).category(categoryId).price
?这样,我会知道,对于价格的特定变化,它是 for whichCategory
和 for which Shop
。
grail 元类或休眠实用程序类是否提供了一种从最底层子级到最顶层父级遍历对象树的方法?