我正在使用带有korma的 Clojure 将 Clojure 映射存储在 Mysql 数据库中,例如使用以下结构存储映射:
(defentity users
(table :user)
(entity-fields :email
:password
:name))
在具有四列id
(隐式定义)email
、password
和的表中name
。
所以,当我调用这段代码时,一切正常:
(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
保存所有这些来解决,但我更愿意在我这样做之前找出是否有内置的方法(或任何其他更好的想法)。