如何跟踪GORM管理的集合的更改?

时间:2014-03-12 15:51:48

标签: grails gorm

想象一下以下域类:

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

class Role {
    String name
}

我的意图是每次在roles集合中添加/删除元素时执行某些操作;这包括1)从数据库填充roles,以及2)用户进一步操纵。如果刚刚创建了一个User实例(并且没有持久化),我可以捕获通知。在调用save()方法之后,ObservableList仍然完好无损。但稍后,例如,当我从控制器执行User.find ...()时,原始的ObservableList被Hibernate的org.hibernate.collection.PersistentList取代,显然不再有通知了。

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

0 个答案:

没有答案