假设您已经完成了defdb。我有一个表“ items”,其中有两个字段,“ id”(PK)和“ item”。我想设置一个实体,以便每当选择它时,我只会在“ item”中获得条目。从documentation判断,我认为korma/entity-fields是实现此目的的方法。

(require '[korma.core :as korma])

(korma/defentity items
  (korma/entity-fields :item))

(korma/select items)
;; Wanted: [{:item "foo"}]
;; Received: [{:id 1, :item "foo"}]


我正在使用科尔马0.3.0-beta7。我怎样才能使korma/select做我想做的?

最佳答案

我不认为您可以从defentity中执行此操作-select的工作方式无需显式传递字段列表就是select *

如何基于科尔马/选择宏:

(defmacro select-without-id
  [ent & body]
  `(let [query# (-> (korma/select* ~ent)
                (korma/fields (vec (:fields ~ent)))
                 ~@body)]
     (korma/exec query#)))

09-04 15:01