假设我在Grails 2.x中有类似于Domain Class的东西
class CurrentReading {
DateTime timestamp
Sensor sensor
Integer valueInt
Boolean valueBool
Float valueFloat
static constraints = {
timestamp blank: false
sensor blank: false
}
}
是否有开箱即用的GORM /验证功能,可以确保设置valueInt
,valueFloat
或valueBool
中的一个属性?
我已经对grails install-plugin constraints
进行了一些实验,但未能将其他域属性传递给自定义验证程序。
答案 0 :(得分:0)
你需要做这样的事情:
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()
}
}