BootStrap.groovy ファイルでユーザー ドメイン オブジェクトを作成しようとしていますが、次のエラーが表示されます。
[ERROR]:AssertionFailure an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
ドメイン オブジェクトを以下に示します。この問題は、afterInsert メソッド内からサービスを呼び出すときに発生します。サービスは null ではなく、toString() や inspect() などのメソッドを呼び出すと、エラーが発生するようです。
BootStrap.groovy
def newUser = new User(...)
newUser.save(flush:true, failOnError: true)
ユーザー.groovy
class User extends Auth {
transient def userService
...
def afterInsert() {
log.debug "SERVICE: ${userService == null ? 'NULL': 'NOT NULL'}" // Gives: SERVICE: NOT NULL
// Either of the following lines cause the error when uncommented
//log.debug "SERVICE: ${userService.toString()}"
//userService?.makeUser(this)
}
}
BootStrap を使用してこれを可能にする必要がありますか、それとも根本的に何か問題がありますか?
または、BootStrap から呼び出されたときにこのコードを無視することはできますか? 例:次のようなもの:
def afterInsert() {
if (notBootStrap()) {
...
}
}
どんな入力でも大歓迎です!