我使用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上提出,或者考虑自己添加它.维护者克里斯·格兰杰很容易交谈,可能会考虑你的想法.