【发布时间】:2010-08-10 16:16:19
【问题描述】:
我在使用唯一约束时遇到了问题。 允许以下组合
A.name B.name
foo NULL
foo bar
foo bar1
foo1 bar
应该不可能创建具有相同名称的新 A,只有当它具有不同的 B 时。 使用下面的约束可以创建
A.name B.name
foo NULL
foo NULL
因为 NULL 似乎对唯一性没有影响。
任何提示如何解决这个问题?
class A {
String name
static belongsTo = [b:B]
static constraints = {
name(unique:'b')
b(nullable:true)
}
}
class B {
String name
static hasMany = [as:A]
name(unique:true)
}
【问题讨论】:
-
您使用的是哪些 RDBMS?
-
mysql,但这个问题的目的是在 grails 及其对域的约束中解决
-
null values int key component 会给您带来严重的麻烦:请考虑不允许在 key 组件中使用 null 值。认真:考虑不允许在关键组件中使用空值
标签: sql grails unique grails-orm constraints