У меня есть собственный валидатор, такой как -
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;
}
...
Так что в основном мне нужна некоторая проверка, основанная на каком-то условии, и в моей проверке мне нужно выполнить запрос.
Но теперь, если я это сделаю -
def admin = new UserAccount(firstname:'Admin',email:'admin@example.com')
admin.save(flush:true)
admin.addToAuthorities("ADMIN").save(flush:true)
Сбой.
Grails выполняет проверку, даже при обновлении, и, поскольку электронная почта существует, проверка не выполняется.Чем это отличается, если я делаю
email {unique:true}
Говорит ли Граилс, что я не могу написать собственный валидатор, который проверяет уникальность.