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