4

Clojure とkormaを使用して、Clojure マップを Mysql データベースに格納しています。たとえば、マップを次の構造で格納しています。

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

id4 つの列(暗黙的に定義されている)、emailpasswordおよびを含むテーブル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ますが、それを行う前に、それを行うための組み込みの方法があるかどうか (または他のより良いアイデア) を調べたいと思います。

4

1 に答える 1

2

いいえ、余分なキーと値のペアをマップから削除する必要があります。おそらく、防御に基づいて、コルマにそれらを削除させることができます.

機能リクエストとしてhttps://github.com/korma/Kormaで取り上げるか、自分で追加することを検討することをお勧めします。メンテナの Chris Granger は話しやすく、おそらくあなたのアイデアを検討してくれるでしょう。

于 2012-10-03T15:04:39.273 に答える