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
}
GORM 將使用一個鏈接表,來映射上面的關聯。你可以使用joinTable
參數來改變各式各樣的連接表映射:
class Person {
static hasMany = [nicknames:String]
static mapping = {
hasMany joinTable:[name:'bunch_o_nicknames', key:'person_id', column:'nickname', type:"text"]
}
}