我使用Clojure with 科尔马将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-ing来解决,所有这些都可以保存,但是我更愿意在我这么做之前先找出是否有一个内置的方法(或者其他更好的主意)。
发布于 2012-10-03 15:04:39
不,您必须从映射中删除额外的键/值对。可以说,科马可以根据叛逃的实体将他们撤除。
我建议您要么将它作为特性请求在https://github.com/korma/Korma上提出来,要么考虑自己添加它。克里斯·格兰杰( Chris ),这位维护者,很容易交谈,很可能会考虑你的想法。
https://stackoverflow.com/questions/12707618
复制相似问题