grails:即使在唯一约束之后也插入重复行
我能够插入多个具有相同值actionName:“discard”和actionParameter:“”的行。我想避免这种情况 其他约束条件也很好,比如我不能两次插入actionName:“rate limit”和actionParameter:“5” 这是我的域类: 集体诉讼{grails:即使在唯一约束之后也插入重复行,grails,duplicates,unique,Grails,Duplicates,Unique,我能够插入多个具有相同值actionName:“discard”和actionParameter:“”的行。我想避免这种情况 其他约束条件也很好,比如我不能两次插入actionName:“rate limit”和actionParameter:“5” 这是我的域类: 集体诉讼{ String actionName String actionParameter static hasMany = [actionFlow:Flow] static constraints = { actio
String actionName
String actionParameter
static hasMany = [actionFlow:Flow]
static constraints = {
actionName(blank:false,nullable:false,inList:["discard","rate-limit","redirect"])
actionParameter(blank:true,nullable:true,unique:'actionName',validator:{val,obj ->
if(obj.actionName == 'discard' && val != null){ return false}
else if(obj.actionName == 'rate-limit')
{
Utility util = new Utility()
if(!util.validateNum(val,0,2147483647)) {return false}
}
else if(obj.actionName == 'redirect')
{
if(val == null) {return false}
Utility util = new Utility()
if(!(util.validateIp(val) || util.validateIpAndPort(val) || util.validateASAndPort(val)) ) {return false}
}
})
}
}
请告诉我是否有其他方法可以这样做?
提前谢谢 这是默认情况下的实现,即唯一约束不适用于nullable属性。请参阅此问题的参考中的问题。我通过在可为空的字段中使用“null”值作为字符串来解决此问题。这只是权宜之计,而不是问题的解决方案 您使用的是什么版本的Grails?我使用的是Grails2.4.0