GORM中的关联
1. One-to-one:使用 belongsTo
来设置
class Face {
Nose nose
}
class Nose {
static belongsTo = [face:Face]
}
2.
One-to-many:在Grails 中定义这样的关联可以使用 hasMany
class Author {
static hasMany = [ books : Book ]
String name
}
class Book {
String title
}
默认的级联行为是级联保存和更新,但不删除,除非 belongsTo
被指定:
class Author {
static hasMany = [ books : Book ]
String name
}
class Book {
static belongsTo = [author:Author]
String title
}
3.
Many-to-many:通过在关联双方定义 hasMany
,并在关联拥有方定义 belongsTo
class Book {
static belongsTo = Author
static hasMany = [authors:Author]
String title
}
class Author {
static hasMany = [books:Book]
String name
}
4. 集合类型基础:
GORM 将使用一个链接表,来映射上面的关联。你可以使用joinTable
参数来改变各式各样的连接表映射:
class Person {
static hasMany = [nicknames:String]
static mapping = {
hasMany joinTable:[name:'bunch_o_nicknames', key:'person_id', column:'nickname', type:"text"]
}
}