一对一关系三种方式生成的表的映射:
class Face{
static hasOne = [nose:Nose]
}
class Nose{
Face fase
}
face: id version
nose: id version face_id
class Face{
Nose nose
}
class Nose{
}
face: id version nose_id
nose: id version
class Face{
Nose nose
}
class Nose{
static belongsTo = [face:Face]
}
face: id version nose_id
nose: id version
一对多关系:
一对多关系中,三个格式创建的表的格式不同:
1、 static belongsTo = [author:Author] //2个表
2、 static belongsTo = Author //三个表
3、 Author author
static belongsTo = Author //2个表
一对多关系,三种保存方式:
def a = new org.bookstore.Author(name:'xx')
.addToFiction(title:"IxT")
.addToNonFiction(title:'xxxx')
.save()
def a = new org.bookstore.Author(name:'new')
if (a.save()) {
println 'success'
def b = new org.bookstore.Book(title:'new title')
b.author = a
if (b.save()) {
println 'success Book'
}
}
def a = new org.bookstore.Author(name:'new')
if (a.save()) {
println 'success'
def alls = [
new org.bookstore.Book(title:'new title',description:'xx',price:22.0,name:'name'),
new org.bookstore.Book(title:'new title',description:'xx',price:22.0,name:'name'),
new org.bookstore.Book(title:'new title',description:'xx',price:22.0,name:'name'),
new org.bookstore.Book(title:'new title',description:'xx',price:22.0,name:'name'),
]
alls*.author = a
if (alls*.save()) {
println 'success Book'
}
}