【问题标题】:Grails equivelant of Rails ARel 'includes'Rails ARel 'includes' 的 Grails 等价物
【发布时间】:2012-12-13 10:25:23
【问题描述】:

我有一个 Rails 应用程序,我可以使用 ARel “includes”(例如)显着加快速度。 (人为的)

class User < ActiveRecord::Base
   has_many :posts
   scope :eager, includes(:posts => [:rating, :author, {:tags => [:day, {:foo => :bar}]}] )
end

打电话

@posts = current_user.posts.eager

极大地减少了页面负载,并大大减少了查询次数。 Rails 通过首先在一个查询中选择帖子来做到这一点

select * from posts where ...

然后在一个查询中选择所有这些帖子的所有 cmets,而不是每个评论一个查询:

select * from comments where post_id in (6,7,8,9,10,...)

在 grails 中是否有等价物?我熟悉条件和命名查询,我可以在其中编写包含大量连接的查询,但我希望 Grails 使用“IN”运算符生成一些查询。

【问题讨论】:

    标签: ruby-on-rails grails grails-orm arel


    【解决方案1】:

    我找到了一些关于这个问题的参考资料:Eager and Lazy FetchingfetchMode

    【讨论】:

    • 我认为这在某种程度上是可行的,但对于我上面的示例,它会对每个帖子上的所有 cmets 进行单独的查询,但我希望对所有帖子的所有评论进行单个查询。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多