Clojure とkormaを使用して、Clojure マップを Mysql データベースに格納しています。たとえば、マップを次の構造で格納しています。
(defentity users
(table :user)
(entity-fields :email
:password
:name))
id
4 つの列(暗黙的に定義されている)、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 のどこかにあるかどうかです。問題は、保存時にそれらすべてを -ing することで解決できdissoc
ますが、それを行う前に、それを行うための組み込みの方法があるかどうか (または他のより良いアイデア) を調べたいと思います。