0

コマンド オブジェクトでネストされたドメイン クラス インスタンスを検証しようとしています。

次のコマンドオブジェクトを持つ

package demo

import grails.databinding.BindingFormat

class SaveEventCommand {

    @BindingFormat('yyyy-MM-dd')
    Date date

    Refreshment refreshment

    static constraints = {
        date validator: { date -> date > new Date() + 3}
        refreshment nullable: true
    }
}

そして、独自の制約を持つ次のドメインクラスを持つ

package demo

class Refreshment {

    String food
    String drink
    Integer quantity

    static constraints = {
        food inList: ['food1', 'food2', 'food3']
        drink nullable: true, inList: ['drink1', 'drink2', 'drink3']
        quantity: min: 1
    }
}

リフレッシュメントがnull可能でない場合、コマンドオブジェクトは日付プロパティを検証し、リフレッシュメントインスタンスの対応する制限を確認する必要があります

今のところ、コントローラーで次のコードを試してください。

def save(SaveEventCommand command) {
    if (command.hasErrors() || !command.refreshment.validate()) {
        respond ([errors: command.errors], view: 'create')

        return
    }

    // Store logic goes here
}

ここまで!command.refreshment.validate()、更新インスタンスを検証しようとしましたが、正しくないデータを渡した場合でも、エラーがないという結果が得られました。

ガイドに感謝し、お時間をいただきありがとうございます

4

2 に答える 2