【问题标题】:Save record having reference to another record in Grails Domain保存引用 Grails 域中另一条记录的记录
【发布时间】:2015-12-22 09:55:29
【问题描述】:

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

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

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

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

目前我是这样做的:

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

=> 为了能够插入 B 记录,我必须再做一个查询来获取整个 A 对象,这样浪费时间和内存,因为仅 a_id 就已经足够了。 p>

非常感谢。

【问题讨论】:

  • 而不是 get 使用 load()。不要担心这里的内存,它不会花费你很多内存,如果它已经存在于一级缓存中,它会从缓存中获取对象。

标签: grails grails-orm grails-domain-class


【解决方案1】:

可悲的是,没有办法做到这一点。

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

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

【讨论】:

    猜你喜欢
    • 2018-03-02
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多