2

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

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 ...

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

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

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

4

1 回答 1

1

我发现了一些关于这个问题的参考资料:Eager and Lazy Fetching and fetchMode

于 2012-12-13T10:56:38.770 回答