是否可以在grails中编写自己的验证器,以返回有效对象?
就像是:
static constraints = {
name(validator: {val, obj ->
if (Drink.findByName(val)) return [Drink.findByName(val)]
})
}
换句话说-如果饮料已经存在于数据库中,则当有人进行
新饮料(“可乐”)
并且可乐已经在数据库中
请您参考如下方法:
您无法使用自定义验证程序执行此操作。这不是真的是什么意思。从Grails Reference:
闭包可以返回:
null或true表示该值有效false表示无效值,并使用默认消息代码grails-app/i18n/message.properties以查看默认错误消息代码如何使用参数。 一种替代方法是只创建一种服务方法,该服务方法是:1)查找域并返回它(如果存在); 2)否则,保存域并返回它。
可能还有一个更优雅的选择。无论如何,Grails的约束机制不具备(也不应具有)这种能力。




