首先请到这里
https://grails.github.io/grails-doc/3.0.x/guide/GORM.html#manyToOneAndOneToOne
如果你滚动几行,你会看到
行最后,在一对一关系的一侧添加唯一约束是个好主意:
代码是
class Face {
static hasOne = [nose:Nose]
static constraints = {
nose unique: true
}
}
我拿出了以下两个域定义的更改日志而没有唯一的:true
class Nose {
String name
Cat cat
static constraints = {
}
}
class Cat {
String name
static hasOne = [nose: Nose]
static constraints = {
}
}
并且更改日志显示已添加唯一
<changeSet author="S (generated)" id="1452758231706-5">
<createIndex indexName="cat_id_unique_1452758231629" tableName="nose" unique="true">
<column name="cat_id"/>
</createIndex>
</changeSet>
所以,尽管在文档中有很少的冗余语句并不是什么大不了的事情,但我想确保唯一的:true是不必要的。指定hasOne并具有后向引用足以使关系真正一对一。那是对的吗?谢谢!