ruby DataMapperを使用して結合ステートメントでクエリを生成するにはどうすればよいですか?
すなわち。
class Model1
property id, Serial
has n :Model2s, :parent_key => [ :id ], :child_key => [ :model1_id ]
end
class Model2
property :id, Serial
property :model1_id, Integer
has n :Model3s, :parent_key => [ :id ], :child_key => [ :model2_id ]
end
class Model3
property :id, Serial
property :model2_id, Integer
end
ここで、DataMapperに次のようなクエリを作成させます。
SELECT ... FROM model1 INNER JOIN model2 ON model1.id = model2.model1_id INNER JOIN model3 ON model2.id = model3.model2_id;
現在、アクセス時に単一のクエリですべてのリレーションを遅延ロードしますが、これは非常に低速です。