我在Windows上使用sqlite3数据库处理clojure及其korma库。我以7web书为例。它介绍了select*函数及其朋友。

但是,使用fields函数将添加字段而不是进行限制。

;; models.clj
(defentity issue
  (entity-fields :id :project_id :title :description :status)
  (has-many comment))

;; repl
test=> (-> (select* issue)
  #_=>     (fields :title)
  #_=>     (as-sql))
"SELECT \"issue\".\"id\", \"issue\".\"project_id\", \"issue\".\"title\", \"issue\".\"description\", \"issue\".\"status\", \"issue\".\"title\" FROM \"issue\""


我有想念吗?

最佳答案

就像问题#251中提到的那样,原因是entity-fields表达式。它定义了查询的默认字段。 fields函数将更多字段添加到默认值。按设计工作。

因此,我在entity-fields中删除​​了defentity

;; models.clj
(defentity issue
  (has-many comment))

;; repl
test=> (-> (select* issue)
  #_=>     (fields :title)
  #_=>     (as-sql))
"SELECT \"issue\".\"title\" FROM \"issue\""
test=> (-> (select* issue)
  #_=>     (as-sql))
"SELECT \"issue\".* FROM \"issue\""

关于clojure - 选择字段功能的科尔马不拒绝列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30424533/

10-14 13:39
查看更多