Grails 如何跟踪对GORM托管集合的更改?

Grails 如何跟踪对GORM托管集合的更改?,grails,gorm,Grails,Gorm,想象一下以下域类: class User { static hasMany = [ roles: Role ] List<Role> roles User() { roles = new ObservableList<>() roles.addPropertyChangeListener({ event -> ... } as PropertyChangeListener) } } class Rol

想象一下以下域类:

class User {
    static hasMany = [ roles: Role ]
    List<Role> roles
    User() {
        roles = new ObservableList<>()
        roles.addPropertyChangeListener({ event -> ... } as PropertyChangeListener)
    }
}

class Role {
    String name
}
类用户{
静态hasMany=[角色:角色]
列出角色
用户(){
角色=新的可观察列表()
roles.addPropertyChangeListener({event->…}作为PropertyChangeListener)
}
}
阶级角色{
字符串名
}
我的意图是在每次向
角色
集合添加或从中删除元素时执行一些操作;这包括1)从数据库填充
角色
,以及2)用户的进一步操作。如果只是创建了一个用户实例(而不是持久化的),我就能够捕获通知。调用save()方法后,ObservableList仍然完好无损。但后来,例如,当我从控制器执行User.find…()时,原来的
ObservableList
被Hibernate的
org.Hibernate.collection.PersistentList
替换,显然不再有通知


如何实现与GORM兼容的变更感知列表?

您试图跟踪哪些变更?添加和删除元素。元素本身应该可以从通知处理程序中访问。您是否考虑过挂接GORM事件?