grails的一对一、一对多关系

一对一关系三种方式生成的表的映射:

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'
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值