Проверка Grails не работает после обновления

Я занимаюсь обновлением своего приложения Grails 1.3.7 до версии 2.0.3 и исправил большинство проблем. Однако у меня есть код, который раньше работал, создавая пользователя и сохраняя его в базе данных. Код НЕ должен проходить проверку, так как я повторно использую имя пользователя, которое уже занято, и существует уникальное ограничение на имя пользователя. .validate()возвращает значение true, но затем код фактически перестает работать, когда user.save()вызывается с ошибкой уникального ограничения MySql.

Должна выдавать ошибку:

def submitSignup = {
        def user = new User(params)

        user.validate()
        if (!user.hasErrors()) {
            ...
            // This line bombs with the MySql unique constraint I would have expected .validate() to get
            user.save()
        }
}

В User.groovy:

static constraints = {
    username(blank: false, unique: true);
    ...
}

Есть идеи?

РЕДАКТИРОВАТЬ: я также обновляюсь до подключаемого модуля Spring Security от Acegi. Я не думаю, что это будет актуально, но я решил упомянуть об этом.

Я поместил образец, который страдает от проблемы, по адресу: https://github.com/skazzaks/Grails-Unique-TestЭто определенно делает его похожим на ошибку.

5
задан skaz 20 May 2012 в 15:10
поделиться