如何使用Korma配置瞬态字段

时间:2012-10-03 11:33:43

标签: mysql clojure korma

我正在使用带有korma的Clojure将Clojure地图存储在Mysql数据库中,例如存储具有此结构的地图:

(defentity users
  (table :user)
  (entity-fields :email 
                 :password 
                 :name))

在包含四列id(隐式定义),emailpasswordname的表格中。

所以,当我调用这段代码时,一切正常:

(insert users (values {:email "john@example.com"
                       :password "____hashed_passw___"
                       :name "J"}))

我遇到的问题是我的地图可能包含一些在数据库中没有相应列的键(我不想保留这些值)。例如:

(insert users (values {:email "john@example.com"
                       :password "____hashed_passw___"
                       :name "J"
                       :something "else"}))

会抛出错误MySQLSyntaxErrorException Unknown column 'something' in 'field list'

理想情况下,我想知道的是,如果在Korma的某个地方有一个选项可以忽略地图中存在的额外键。问题可能可以通过dissoc解决所有这些问题,但是在我这样做之前我更愿意找出是否有内置的方法(或者任何其他更好的主意)。

1 个答案:

答案 0 :(得分:2)

不,您必须从地图中删除额外的键/值对。可以说Korma可以根据顽固性去除它们。

我建议您将其作为功能请求在https://github.com/korma/Korma上提出,或者考虑自己添加它。维护者克里斯·格兰杰很容易交谈,可能会考虑你的想法。