2012-10-03 19 views
4

我使用的Clojure与korma存储Clojure的地图在MySQL数据库中,如存储的地图,这种结构:如何配置瞬态字段与科尔马

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

在表四列id(隐式定义) ,emailpasswordname

所以,当我把这段代码的一切工作正常:

(insert users (values {:email "[email protected]" 
         :password "____hashed_passw___" 
         :name "J"})) 

我的问题是,我的地图可能包含不具有在数据库中的相应列的一些键(我做不想坚持这些值)。例如:

(insert users (values {:email "[email protected]" 
         :password "____hashed_passw___" 
         :name "J" 
         :something "else"})) 

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

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

+0

我不认为在科尔马内置任何东西 – Ankur

回答

2

不,您必须从地图中移除多余的键/值对。可以说,科尔马可以根据他们的怀疑去除他们。

我建议你在https://github.com/korma/Korma上提出它作为功能请求,或者考虑自己添加它。维护人员Chris Granger很容易与之交谈,并可能会考虑你的想法。