0
在Grails 2.3.4应用程序中,我有一个表示作者和文章之间关系的域类。它包含三个属性:一对属性的Grails条件唯一性约束(类型+值)
- 类型ID(表示作者(1),浏览器(3)和其他类型的)
- 构件
- 文章
-
class Article {
static hasMany = [ relations: ArticleRelation ]
string title
}
class ArticleRelation {
static belongsTo = [ article: Article ]
int type
Member member
}
一些语义类型不允许创建多于一对的类型+作者。例如:
- 每篇文章只允许有一个作者
其他类型+作者没有这样的限制。例如:查看器。
我正在寻找域类中的验证方法,该方法将基于类型的值确保类型+作者对的唯一性。
喜欢的东西:
static constraints = {
member unique: if (type == 1 || type == 2)
}
是否有可能写Grails领域类这样的限制?
- 编辑 -
事实上,我发现病情需要进行不同的写:类型+文章必须是唯一的一对来形容含有正常。
所以在ArticleRelation的约束是
static constraints = {
article validator: { val, obj ->
if ((obj.type == 1) || (obj.type == 2)) {
if (ArticleRelation.countByArticleAndType(val, obj.type) > 0) return ['myNotUniqueErrorKey']
}
}
}