clojure Web スタックに関するこのサイトを読んでいました。
http://brehaut.net/blog/2011/ring_introduction
また、clojure の ORM について次のように述べています。
「明らかな理由から、Clojure 用の SQL/リレーショナル DB ORM はありません。」
明らかな理由は、clojure.contrib.sql または clojureql クエリを実行すると、オブジェクトへのマッピングが自動的に行われることです。ただし、1 対多または多対多の関係を行うには、追加の作業が必要なようです (ただし、それほど多くの作業は必要ありません)。
1 対多の記事を見つけました: http://briancarper.net/blog/493/
私が同意するかどうかはわかりません。両方のテーブルがデータベースからプルされ、結合されたテーブルがメモリ内でフィルター処理されると想定しているようです。実際には、SQL クエリは where 基準を指定すると思います。
だから私は疑問に思っています.clojureqlまたはclojure.contrib.sqlを介して1対多の関係を自動的に行うかなり明白な方法はありますか? 私が考えることができる唯一のことは、次のようなものです(典型的なブログ投稿/コメントの例を使用):
(defn post [id]
@(-> (table :posts)
(select (where :id id))))
(defn comments [post_id]
@(-> (table :comments)
(select (where :post_id post_id))))
(defn post-and-comments [id]
(assoc (post id) :comments (comments id)))
この概念を自動化する方法はありますか、それともうまくいきますか?