我能够插入具有相同值的多个行( 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}
}
})
}}
请让我知道是否有其他方法可以做到这一点?提前谢谢!!
发布于 2014-07-03 13:19:59
这是默认的实现,即唯一约束不适用于可空属性。请参阅https://jira.grails.org/browse/GRAILS-10403问题与https://jira.grails.org/browse/GRAILS-10178有关的问题。
发布于 2014-08-16 03:59:02
我在可空字段中使用'null‘值作为字符串来解决这个问题。这只是解决办法,而不是解决问题的办法。
https://stackoverflow.com/questions/24540207
复制相似问题