Grails - hasMany & belongTo

Summary

简单的级联关系

  • 一个 Author 会有很多 Book。
  • Author 对 Book 是一对多的关系。
  • Book 对 Author 是多对一的关系。
  • Book belongs to Author。
  • 在 Book 上设置 Foreign Key 对应 author_id,可以单独删除 book,但是存在书不能删除 author。

Demo

class Author {
    String name
    static hasMany = [book:Book]
    static constraints = {
    }
}

class Book {
    String title
    static belongsTo = [author: Author]
    static constraints = {
    }
    static mapping = {
        author cascade: 'all'
    }
}

// 自动创建出来的表结构
CREATE TABLE
    author
    (
        id BIGINT NOT NULL,
        version BIGINT NOT NULL,
        name CHARACTER VARYING(255) NOT NULL,
        PRIMARY KEY (id)
    );

CREATE TABLE
    book
    (
        id BIGINT NOT NULL,
        version BIGINT NOT NULL,
        title CHARACTER VARYING(255) NOT NULL,
        author_id BIGINT NOT NULL,
        PRIMARY KEY (id),
        CONSTRAINT fkklnrv3weler2ftkweewlky958 FOREIGN KEY (author_id) REFERENCES "author" ("id")
    );

Reference

http://docs.grails.org/3.1.1/ref/Domain%20Classes/belongsTo.html
http://grails.1312388.n4.nabble.com/How-to-cascade-delete-belongsTo-isn-t-working-td3329469.html

posted @ 2020-05-08 16:52  duchaoqun  阅读(150)  评论(0编辑  收藏  举报