У меня есть домен три домена класса, как это:Как поставить ограничение на отношения в классе домена, в Grails?
Tasks.groovy
class Tasks {
static belongsTo = [ user : User ]
//other fields
Date startDate
Date endDate
}
User.groovy
class User {
//relationships. . . .
static belongsTo = [ company : Company, role : Role, resource : Resource]
static hasMany = [ holidays : Holiday, tasks : Tasks]
//other fields
}
Holiday.groovy
class Holiday {
static belongsTo = User
Date startDate
Date endDate
//other fields
}
Теперь, когда я создаю экземпляр Tasks
, я хочу поставить ограничение такого, что Tasks
startDate
и endDate
не подпадают под User
«s Holiday
s startDate
и endDate
. И бросок и ошибка, если она есть.
Я хочу, чтобы установить это ограничение на мой класс домена (например, на Tasks
).
Можно ли это сделать?
Заранее спасибо.
Ницца! Вероятно, было бы лучше инкапсулировать часть этой логики в класс User, поэтому код станет более понятным и будет уважать Закон Деметры. Что-то вроде 'startDate (validator: {startDate, self -> self.user.canStartTaskAt (startDate)})' :) – epidemian