Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Join query in Hanami-model

Is it possible to create join query in subclass of Hanami::Repository?

I found that this pull request implements this feature but I can't find it in current codebase.

like image 618
WojciechKo Avatar asked Dec 14 '22 23:12

WojciechKo


1 Answers

Hanami model based on rom, that's why you can use Relation#join method with a needful relation.

For this you need to call join method for one relation and set other relation as an attribute:

class PostRepository < Hanami::Repository
  associations do
    has_many :comments
  end

  # ...

  def join_example(date_range)
    posts    # => posts relation
    comments # => comments relation


    posts
      .join(comments) # set relation object here
      .where(comments[:created_at].qualified => date_range)
      .as(Post).to_a
  end
end

And that's all.

Some helpful links:

  1. rom-sql tests for left_join
  2. A real example
like image 130
Anton Avatar answered Dec 31 '22 10:12

Anton