保存引用Grails域中另一条记录的记录



我有两个域类:A和B,定义如下:

class A {
    String data    
    static hasMany = [bs: B]
}
class B {
    String data    
    static belongsTo = [a: A]
}

现在我们在表B中有字段a_id。问题是我已经有a_id了,如何正确地插入一个新的B记录,并将_a_id作为外键?

目前我喜欢这样做:

B b = new B(
    data: "data", 
    a: A.get(a_id)
)
b.save()

=>为了能够插入B记录,我必须再做一个查询,得到整个A对象,这样浪费时间&自a_id以来的内存已经足够了。

非常感谢。

遗憾的是,没有办法做到这一点。

如果你想优化,可以考虑使用B.executeUpdate甚至原始SQL

Sql sql = new Sql(dataSource)
sql.executeUpdate("insert into....")

最新更新