GORM のカスタム リスナーがどのように機能するか知っている人はいますか? どうすればインスタンス化できますか? 私は Grails 2.0.1 を使用していますが、このトピックに関するドキュメントはまったく役に立ちません。リスナーを作成するにはデータストアが必要なため、リスナーを登録できません。取得方法がわかりません。
解決しました!誰かが同じ問題を抱えている場合にのみ、解決策を書きます。リスナーを追加するために、クラスorg.grails.datastore.mapping.engine.event.PersistenceEventListenerをこのように拡張しました
class MyCustomListener implements PersistenceEventListener{
@Override
public boolean supportsEventType(Class<? extends ApplicationEvent> event) {
return ValidationEvent.class.isAssignableFrom(event)
}
@Override
public boolean supportsSourceType(Class<?> clazz) {
return true
}
@Override
public void onApplicationEvent(ApplicationEvent event) {
log.debug 'My custom listener!'
}
@Override
public int getOrder() {
return DEFAULT_ORDER;
}
}