3

beforeUpdateOf* はありますか (* はフィールドですか?)

と別の質問:

def beforeUpdate= { log.info("in beforeUpdate" +this.status) }

def afterUpdate = { log.info("in afterUpdate " +this.status) }

これは両方とも同じステータスを与えます。実際にはオブジェクト(this)のステータスはxからyに更新されますが

4

2 に答える 2

3

プロパティが変更されたときのイベントはありませんが、何かを行う明示的なセッターを追加できます。

class MyDomainClass {
   String status

   void setStatus(String status) {
      this.status = status
      // do something based on changed value
   }
}

に同じ値が表示されbeforeUpdateafterUpdateいます。これらのコールバックは、Hibernateが変更された値をデータベースに保存するときのものであるためです。Hibernateが更新を開始してから終了するまでの間に値が変化することはまれです。

データベースから元の値を探している場合は、 http: //grails.org/doc/latest/ref/Domain%20Classes/getPersistentValue.htmlを使用して入手できます。

于 2012-03-09T15:37:00.793 に答える
0

grails 監査プラグインを確認することをお勧めします:監査ログ監査証跡

于 2012-03-09T12:54:35.330 に答える