grails:即使在唯一约束之后也插入重复行

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

我能够插入多个具有相同值actionName:“discard”和actionParameter:“”的行。我想避免这种情况

其他约束条件也很好,比如我不能两次插入actionName:“rate limit”和actionParameter:“5”

这是我的域类:

集体诉讼{

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