Tag: clojureql

ORM的clojure?

我正在读这个网站关于clojurenetworking堆栈: http://brehaut.net/blog/2011/ring_introduction 对于clojure来说,这有一个关于ORM的说法: “由于显而易见的原因,Clojure没有SQL /关系数据库ORM。” 我可以看到的一个明显的原因是,当您执行clojure.contrib.sql或clojureql查询时,映射到对象会自动发生。 然而,看起来需要一些额外的工作来做一对多或多对多的关系(尽pipe可能不是太多的工作)。 我发现这写成一对多: http : //briancarper.net/blog/493/ 我不确定我是否同意; 它似乎假设两个表都从数据库中拉出来,然后在内存中过滤连接的表。 在实践中,我认为sql查询将指定where标准。 所以我想知道,是否有一些相当明显的方法,通过clojureql或clojure.contrib.sql自动执行一对多的关系? 我能想到的唯一的东西是这样的(使用典型的博客文章/评论的例子): (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))) 有没有什么办法可以使这个概念自动化呢?还是这样好呢?