我希望能够传递一个用户定义的字段数组,其中包含需要获取的所有列的列表。korma/field能接受一列数组吗?
我本质上想要创造的是这样的东西:
(defn fetch [fields]
(->
(korma/select* foo)
(as-> query
(if (not-empty? fields)
(korma/fields query fields)
query))
(korma/select)))发布于 2018-02-12 12:04:05
我假设这是因为我指定了防御实体中的实体字段。因此,我想知道是否可以覆盖
defentity中指定的实体字段?
我认为你的假设是正确的,也有可能推翻这一点。如果您查看(defentity foo)生成的映射,它有一个包含所有字段的:fields键。korma.core/entity-fields并不取代已经存在的内容,但这将:
(-> foo
(assoc :fields [:first])
(korma/select*)
(korma/as-sql))
=> "SELECT \"foo\".\"first\" FROM \"foo\""我希望能够传递一个用户定义的字段数组,其中包含需要获取的所有列的列表。
(defn fetch [& fields]
(-> (korma/select* foo)
(as-> query
(if (seq fields)
(assoc query :fields fields)
query))
(korma/select)))在本例中,我使用了各种类型的args来镜像korma.core/entity-fields (并使fetch返回用于测试的SQL字符串,而不是执行查询):
(fetch :first :last)
=> "SELECT \"foo\".\"first\", \"foo\".\"last\" FROM \"foo\""
(fetch)
=> "SELECT \"foo\".\"id\", \"foo\".\"first\", \"foo\".\"last\" FROM \"foo\""https://stackoverflow.com/questions/48745545
复制相似问题