gpt4 book ai didi

hibernate - 直接通过grails中的id设置关联

转载 作者:行者123 更新时间:2023-12-02 13:54:26 25 4
gpt4 key购买 nike

我有2个具有一对多关系的域对象。举个例子:

Class Author{
static hasMany = [posts: Post]
}
Class Post{
Author author
}

在数据库中,发布表具有一个称为author_id的字段。在我的应用程序中,我有一堆要与帖子关联的作者ID。为此,我可以先查询每个作者的数据库,然后调用author.addToPosts(post)。但是,由于我已经具有author对象的id,因此我应该能够直接设置post.authorId = authorId来建立关联(无论如何,这都是grails要做的),并将查询量减少一半。

在实际的应用程序中,这样做将使我需要进行的查询数量减少约70%。这是应用程序中的一个关键瓶颈,我不能承受糟糕的SQL性能。我可以轻松地编写一个可以完全做到这一点的sql语句,但是我无法弄清楚如何使我直接设置author_id以手动建立关联。在rails中,这种功能内置于 Activity 记录中。有没有办法做到这一点?

最佳答案

为Author配置2级缓存,大部分情况下将从缓存而不是从数据库检索get()调用(编辑时缓存中的实例将被刷新)。然后,最终结果将是您要查找的内容-作者将被缓存,Hibernate可以使用它来设置Post的外键。

关于hibernate - 直接通过grails中的id设置关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2061985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com