Предположим, вы пытаетесь сделать это в Grails 2+.
Вы не можете использовать проверку таким образом. В вашем примере вам нужно сослаться на свойство того же класса домена. Чтобы исправить ограничение в классе B
, вы можете написать:
class B {
String description
static contraints = {
description unique:true
}
}
Но я думаю, вы хотите импортировать ограничения из класса a
, что делается так.
class B {
String description
static contraints = {
importFrom A
}
}
См. http://grails.org/doc/latest/guide/validation.html#sharingConstraints
Это приведет к импорту всех ограничений свойств, общих для двух классов. Которого в вашем случае нет.
ОБНОВЛЕНИЕ
У меня был аналогичный вопрос, и я нашел решение для него. Поэтому я решил поделиться этим здесь с вами. Проблема может быть решена с помощью пользовательского валидатора. В вашем случае ограничения для класса B
:
static constraints = {
description(validator: {
if (!it) {
// validates to TRUE if the collection is empty
// prevents NULL exception
return true
}
def names = A.findAll()*.name
return names == names.unique()
})
}
Трудно ответить правильно на ваш вопрос, так как требования немного странные. Но, может быть, это поможет.
person
Bart
schedule
12.03.2013