Grails2中的Many-to-many关系

Grails2 支持 many-to-many关系。定义时在双方都定义一个 hasMany关系 ,在从属方还要定义一个 belongsTo 关系:

class Book {

    static belongsTo = Author

    static hasMany = [authors:Author]

    String title

}

class Author {

    static hasMany = [books:Book]

    String name

}

Grails 在数据库层使用一个连接表映射一个many-to-many关系。在关系拥有方,这里的Author,负责持久化这个关系并且可以从关系的一端跨越到另一端实现级联保存。

例如,这段代码可以实现级联保存:

new Author(name:"Stephen King")

        .addToBooks(new Book(title:"TheStand"))

        .addToBooks(new Book(title:"TheShining"))

        .save()

但下面的代码仅仅保存了 Book 而没有保存 authors!

new Book(name:"Groovy in Action")

        .addToAuthors(new Author(name:"DierkKoenig"))

        .addToAuthors(new Author(name:"GuillaumeLaforge"))

        .save()

就像Hibernate 一样,这是一个预期的特性,只允许many-to-many关系的拥有方负责管理这种关系。

Grails'Scaffolding 目前还不支持many-to-many关系。因此,你必须自己编写代码来管理这种关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值