我有 2 个具有一对多关系的域对象。举个例子:
Class Author{
static hasMany = [posts: Post]
}
Class Post{
Author author
}
在数据库中,post 表有一个名为 author_id 的字段。在我的应用程序中,我有一堆我想与帖子相关联的作者 ID。我可以通过首先查询每个作者的数据库,然后调用 author.addToPosts(post) 来做到这一点。但是,由于我已经有了作者对象的 id,我应该可以直接设置 post.authorId = authorId 来建立关联(这是所有 grails 都会做的)并将所需的查询数量减少一半。
在我正在编写的实际应用程序中,这样做会将我需要进行的查询量减少约 70%。这是应用程序的一个关键瓶颈,我不能承受糟糕的 SQL 性能。我可以很容易地编写一个 sql 语句来做到这一点,但我不知道如何让 grails 让我直接设置 author_id 来手动建立关联。在 Rails 中,这种功能内置于活动记录中。grails有没有办法做到这一点?