我有一个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”运算符生成一些查询。