mysql – 如何使用Korma配置瞬态字段

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

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

在一个包含四列id(隐式定义),电子邮件,密码和名称的表中.

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

(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’字段列表’中的未知列’某事’.

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

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

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

点赞