gpt4 book ai didi

hibernate - grails自定义 validator 不会停止保存

转载 作者:行者123 更新时间:2023-12-02 15:49:43 24 4
gpt4 key购买 nike

我有一个返回错误的验证器。错误甚至通过Flash消息显示。但是实例仍然保存。在域类中,我有...

static transients=['hasCustomErrors']

Boolean hasCustomErrors=false

static constraints={
id validator:{val,obj->
if(obj.hasCustomErrors){
return 'errors.action.denied';
}
}

}

在 Controller 中,我有一个测试
   instance.message="This should not persist"
instance.hasCustomErrors=true;
if(!instance.hasErrors() && instance.save(flush:true)){
//success message
flash.messages.shift_tab=["Shift Was Successfully Flagged As Rejected"];

}
else{
//error message
flash.errors.shift_tab=[];
instance.errors.allErrors.each{
flash.errors.shift_tab.push(g.message([error: it]));
}
}

redirect(action:'edit', id:params.id)
return;

该 View 显示错误消息,但是实例仍然保留,因此消息列在数据库中显示为“不应保留的状态为”。

最佳答案

您可能必须先运行instance.validate()才能检查是否有错误,我可以看到您要执行的操作,并且可以在不引入变量来捕获错误的情况下执行此操作,而是使实例被拒绝

instance.errors.reject('fieldName','Issue with field')

那将迫使那个 Realm 失败

关于hibernate - grails自定义 validator 不会停止保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41539808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com