2012-10-03 57 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很容易與之交談,並可能會考慮你的想法。