私は Grails 1.3.7 を使用しており、複数のコントローラーに同様のコードがあります。
def myAction = { MyCommand cmd ->
if (cmd.hasErrors()) {
// return bad request
} else {
someService.callSomeMethod(cmd.someId)
...
}
}
class MyCommand {
Long someId
static constraints = {
someId nullable: false
}
}
99.99% の確率で正常に動作します。ただし、サービスが null で呼び出された (つまり、cmd.someId が null を返した) ことをアプリケーション ログが示す場合がいくつかあります。ただし、制約が に設定されているため、これは意味がありませんnullable: false
。validate()
非常にまれなケースで、grails がコマンド オブジェクトを呼び出すのを忘れたり、制約が無視されたりしたように感じます。
このような問題の原因についてのヒントをいただければ幸いです。