Grails 3 ConstraintException

Я использую Grails 3.02, и все было в порядке, но поскольку я переместил несколько классов предметной области из другого проекта Grails, я начал видеть эту ошибку при запуске интеграционных тестов:

grails.validation.exceptions.ConstraintException: Исключение, вызванное применением ограничения [unique] к классу [class com.mypackage.Individual] для значения [true]: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6397593b еще не обновлено

Код класса домена:

class Individual {

 String institutionId
 String email


 static mapping = {
    table 'db.individual'
    id generator: 'sequence', params: [sequence: 'db.individual_id_sequence']
    institutionId index: 'db.individual_institution_id_idx'
    email index: 'db.individual_email_idx'
 }

 static constraints = {
    institutionId(blank: false)
    email(unique: true)
 }
}

Странно: этот код работает в другом проекте, но не хочет работать в этом, куда я его переместил. Я сравнивал конфиги (application.yml и application.groovy и build.gradle) - но в принципе все одинаково.

Любая помощь, гуру Grails?


person Vladimir Korobkov    schedule 16.08.2015    source источник
comment
попробуйте удалить Individual_email_ids из поля электронной почты.   -  person Vinay Prajapati    schedule 17.08.2015
comment
Вы нашли решение? Я только что получил ту же ошибку   -  person GUL    schedule 01.12.2015


Ответы (1)


Я думаю, что нашел, почему у меня было это исключение. Это никак не было связано с ограничениями.

У меня просто были некоторые другие поля в моем классе домена, которые раньше вычислялись, поэтому это было несопоставленное поле. Но Grails раньше пытался сопоставить это поле с реальным столбцом базы данных. Как только я определил свой собственный геттер (в котором поле инициализируется) для этого вычисляемого поля, все стало хорошо.

Но исключение Grails, кстати, глупо и дезориентирует - оно вообще не описывает основную причину.

person Vladimir Korobkov    schedule 03.12.2015