Grails 每个查询一对一急切抓取

发布于 2024-10-13 18:42:55 字数 220 浏览 5 评论 0原文

假设您有脸和鼻子,并且您想根据 FaceId 获取鼻子。

Grails 用户指南告诉您如何在域类中使用 mapping = { fetch:join } 以便在每次获取面部时在一个查询中急切地获取鼻子。

但我不想一直急切地获取。我只想在这种特殊情况下使用一个查询而不是两个。这可以在每个查询的基础上完成吗?有没有办法做类似的事情: Face.get(faceId, [join:nose])?

Let's say you have face and nose, and you want to get the nose based on a faceId.

The Grails user guide tells you how to use mapping = { fetch:join } in a domain class to eagerly fetch the nose in one query whenever you fetch the face.

But I don't want to eagerly fetch all the time. I just want to do on this particular case to use one query instead of two. Can this be done on a per-query basis? Is there some way to do something like:
Face.get(faceId, [join:nose])?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不可一世的女人 2024-10-20 18:42:55

您的意思是链接:

static fetchMode = [nose:'eager']

此处

更新:

您可以通过条件查询来解决该问题。在这里您可以设置查询中的获取模式:

import org.hibernate.FetchMode as FM
    def c = MyDomain.createCriteria()
    def results = c.list {
        maxResults(10)
        firstResult(50)
        fetchMode("aRelationship", FM.EAGER)
    }

Do you mean somthing link taht:

static fetchMode = [nose:'eager']

found here

Update:

You can solve the problem with a criteria query. Here you can set the fetch mode in the query:

import org.hibernate.FetchMode as FM
    def c = MyDomain.createCriteria()
    def results = c.list {
        maxResults(10)
        firstResult(50)
        fetchMode("aRelationship", FM.EAGER)
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文