selectkorma的字段函数不拒绝列?

select's fields function of korma does not reject colums?

我在 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 函数将更多字段添加到默认值。按设计工作。

因此我在 defentity 内删除了 entity-fields

;; 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\""