选择的字段korma的功能不拒绝colums?

时间:2015-05-24 14:22:07

标签: clojure sqlite korma sqlkorma

我在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\""

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

如问题#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\""