2015-05-24 3 views
1

Я играю с clojure и его библиотекой korma, используя базу данных sqlite3 на окнах. Я следую примеру книги 7web. Он представляет функцию select* и ее друзей.Функция select's fields Функция korma не отклоняет числа?

Но использование функции 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

Как упомянуто в выпуске #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\""