Grails 2.0.1のspring-security-coreプラグインで作成された標準のユーザークラスがあります。私は、mongodbプラグインを使用して永続性のためにmongodbを使用します。beforeInsertでDateプロパティを初期化する際に例外が発生しても失敗します。
私は、ユーザークラスにDateプロパティを追加し、この
def beforeInsert() {
userCreated = new Date()
encodePassword()
}
ユーザーはもはや永続化されるようなものにbeforeInsert()イベントハンドラを変更した場合。例外は表示されていません。ただ静かに失敗します。 それが定義されているとき、私はuserCreatedプロパティを初期化した場合:
Date userCreated = new Date()
とbeforeInsert()イベントハンドラから初期設定を削除し、すべてが正常に動作します。 誰もその行動の説明をしていますか?
ところで、私は故意に自動タイムスタンプ機能を使用しません。パスワードの作成に日付を使用したいからです。自動タイムスタンプでdateCreatedを使用すると、beforeInsert()イベントハンドラが呼び出されてパスワードが機能しなくなった後にdateCreatedフィールドが更新されます。
てみはConfig.groovyにgrails.gorm.failOnErrorを追加して、もう一度あなたのコードを実行していると仮定してencodePassword()メソッドは、serviceメソッドではありませんので、トランザクションにbeforeInsertコードをラップしてみてください。モデルに問題がある場合、これは例外を表示するはずです。 – kenota
conf/Config.groovyにgrails.gorm.failOnError = trueという行が追加されましたが、何も変更されていません...まだ黙って失敗しています... –