【问题标题】:GRAILS Check if atleast one of multiple properties is setGRAILS 检查是否设置了多个属性中的至少一个
【发布时间】:2013-01-09 00:20:35
【问题描述】:

假设我在 Grails 2.x 中有类似的域类

class CurrentReading {

    DateTime timestamp
    Sensor sensor
    Integer valueInt
    Boolean valueBool
    Float valueFloat

    static constraints = {
        timestamp blank: false 
        sensor blank: false
    }

}

是否有一个开箱即用的 GORM / 验证功能允许我确保设置了属性 valueIntvalueFloatvalueBool 中的一个?

我对@9​​87654325@ 进行了一些试验,但未能将其他域属性传递给自定义验证器。

【问题讨论】:

    标签: grails grails-orm grails-2.0


    【解决方案1】:

    你需要做这样的事情:

    static constraints = {
        type inList:['Foo', 'Bar', 'FooBar']
        idStr blank: false, validator: { val, obj ->
            def result
            if(obj.type == "FooBar") {
                result = val =~ /[a-zA-Z]{2}[0-9]{8}/
            } else if(['Foo', 'Bar'].contains(obj.type)) {
                result = val =~ /\d+/
            }
            result.matches()
        }
    }
    

    【讨论】:

    • 基本上是自己写验证器?有点难看,举个例子:)
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多