gpt4 book ai didi

grails - 如何在Grails中对域类中的关系施加约束?

转载 作者:行者123 更新时间:2023-12-02 14:04:07 25 4
gpt4 key购买 nike

我有一个像这样的域三域类:

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 startDateendDate不属于 UserHolidaystartDateendDate。并抛出并出错(如果有)。

我想要一种将此约束施加到域类本身上的方法(即 Tasks上)。

有可能这样做吗?

提前致谢。

最佳答案

您可以使用自定义验证程序来完成此操作。

startDate(validator: {val, obj->
obj.user.holidays.every{holiday-> val <= holiday.startDate || val >= holiday.endDate }
})

您可以将自定义验证逻辑封装为闭包。您还必须为endDate添加类似的逻辑。

关于grails - 如何在Grails中对域类中的关系施加约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com