我有一个自定义验证器,如 -
validator: { userEmail, userAccount ->
if (userAccount.authenticationChannel == "ABC") {
boolean valid = true;
UserAccount.withNewSession {
if (UserAccount.findByEmail(userEmail)){
valid = false;
}
else if (UserAccount.findByName(userEmail)) {
valid = false;
}
Run Code Online (Sandbox Code Playgroud)
...
基本上,我需要根据某些条件进行一些验证,在我的验证中我需要执行查询.
但是,如果我这样做 -
def admin = new UserAccount(firstname:'Admin',email:'admin@example.com')
admin.save(flush:true)
admin.addToAuthorities("ADMIN").save(flush:true)
Run Code Online (Sandbox Code Playgroud)
它失败.
Grails正在运行验证,即使在更新时也是如此,因为电子邮件存在验证失败.如果我这样做,那会有什么不同
email {unique:true}
Grails说我不能写一个检查唯一性的自定义验证器.
grails ×1