我有两张桌子。一个包含国家列表(ISO代码和全名),第二个包含reg的状态。 每个reg条目只能有一个国家/地区,但每个国家/地区可以有多个reg条目。 到目前为止非常直接。
regstat类的设置如下:
class Regstat {
static hasOne = [country: Country]
String reg
int status
Date impdate
static constraints = {
reg(inList: ["FATCA", "ITC2014", "AEOI"])
}
static mapping = {
index: 'reg'
}
}
这是问题所在?我想添加一个约束条件,该约束条件表明我只希望每个国家/地区只有一个条目。例如,一个国家可以有FATCA,IRC2014或AEOI,但每个国家只有一个。 有什么建议我会如何创建这样的约束?
的内容constrain = {
reg+country(unique)
}
答案 0 :(得分:2)
The unique
constraint可以使用另一个属性名称(或名称列表)作为"范围"唯一性:
static constraints = {
reg(inList: ["FATCA", "ITC2014", "AEOI"], unique:'country')
}
相对于reg
,country
或country
的{{1}}是唯一的reg
,您会得到相同的约束行为,不同之处在于这两个属性被视为"无效"当约束失败时,reg unique:'country'
会将错误放在reg
上,而country unique:'reg'
会将错误放在country
上。