1
class Pirate {
    String name
    static belongsTo = Ship
    static hasMany = [ships: Ship]
}

class Ship {
    String name
    static hasMany = [crew: Pirate]
}

new Ship(name: "Ship1").addToCrew(new Pirate(name: "pirate1")).save()

上面的代码只是在PirateandShip表中保存了一个条目,而不是在ship_crew表中。

我知道 Burt 在 Spring Security Grails 插件中使用的这种技术,但我仍然希望能够使用hasManyandbelongsTo

更新

上面的代码行似乎将条目保存在所有三个:Pirate、、Shipship_crew表中,但是,从控制台它只保存两个表中的条目,而不是ship_crew

> new Ship(name: "Ship10").addToCrew(new Pirate(name: "pirate10")).save(failOnError:true) 
new Ship(name: "Ship10").addToCrew(new Pirate(name: "pirate10")).save(failOnError:true) 
Hibernate: 
    /* insert playwithgrails.Ship
        */ insert 
        into
            ship
            (version, name) 
        values
            (?, ?)
Hibernate: 
    /* insert playwithgrails.Pirate
        */ insert 
        into
            pirate
            (version, name) 
        values
            (?, ?)
===> playwithgrails.Ship : 29
4

0 回答 0