gpt4 book ai didi

mysql - 如何使用 Korma 配置 transient 场

转载 作者:可可西里 更新时间:2023-11-01 07:37:39 26 4
gpt4 key购买 nike

我将 Clojure 与 korma 结合使用将 Clojure 映射存储在 Mysql 数据库中,例如存储具有这种结构的映射:

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

在一个包含四列id(隐式定义)、emailpasswordname 的表中。

因此,当我调用这段代码时,一切正常:

(insert users (values {:email "john@example.com"
:password "____hashed_passw___"
:name "J"}))

我遇到的问题是我的 map 可能包含一些键,这些键在数据库中没有相应的列(我不想保留这些值)。例如:

(insert users (values {:email "john@example.com"
:password "____hashed_passw___"
:name "J"
:something "else"}))

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

理想情况下,我想知道 Korma 的某处是否有一个选项可以忽略 map 中存在的额外键。这个问题可以通过dissoc-ing所有的保存来解决,但我更愿意在我做之前找出是否有内置的方法来做到这一点那个(或任何其他更好的主意)。

最佳答案

不,您必须从映射中删除多余的键/值对。可以说 Korma 可以根据防御措施移除它们。

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

关于mysql - 如何使用 Korma 配置 transient 场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com