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

保存引用Grails域中另一条记录的记录,grails,gorm,grails-domain-class,Grails,Gorm,Grails Domain Class,我有两个域类:A和B,定义如下: class A { String data static hasMany = [bs: B] } class B { String data static belongsTo = [a: A] } 现在我们在表B中有了字段a\u id。 问题是我已经有了a\u id,如何正确地插入一个新的B记录,并将a\u id作为外键 目前我喜欢这样: B b = new B( data: "data",

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

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

class B {
    String data    
    static belongsTo = [a: A]
}
现在我们在表B中有了字段a\u id。 问题是我已经有了a\u id,如何正确地插入一个新的B记录,并将a\u id作为外键

目前我喜欢这样:

B b = new B(
    data: "data", 
    a: A.get(a_id)
)
b.save()
=>为了能够插入B记录,我必须再进行一次查询,以获得整个A对象,这样浪费时间和内存,因为A\u id已经足够了


非常感谢。

很遗憾,没办法这么做

如果要优化,请考虑使用B.ExcExtUp更新或甚至原始SQL

Sql sql = new Sql(dataSource)
sql.executeUpdate("insert into....")
使用load()代替get。不要担心这里的内存,它不会花费你很多内存,如果对象已经存在于一级缓存中,它会从缓存中获取对象。