从Korma中的实体中排除字段

时间:2014-11-14 13:52:25

标签: sql clojure korma

我有一些包含大量列的表格,我有时需要在50-60中排除5-6。是的,我的表是3NF标准化的,是的,有些甚至超过60列,如果这听起来很奇怪,亲爱的读者,尝试建模生物实体。

我的问题:

是否可以在Korma中的选择中默认排除字段,而不是在实体定义中指定entity-fields中的数十列?

2 个答案:

答案 0 :(得分:1)

基于谷歌搜索,这在普通的SQL中并不容易,这使得在应用程序级别上也很难做到。

从数据库收到完整的有效负载是否存在问题?如果不是那么你可以添加一个删除不需要的字段的后处理函数。

user=> (def unwanted-columns [:foo :bar])
#'user/unwanted-columns
user=> (map #(apply dissoc % unwanted-columns) [{:foo 1 :bar 2 :baz 3}])
({:baz 3})

答案 1 :(得分:1)

使用sql获取所有列并生成entity-fields

select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS where table_name = '<name of table>';

最好不要选择未使用的字段,而不是稍后过滤它们。