gpt4 book ai didi

sql - 使用 Korma 插入数据库行

转载 作者:太空狗 更新时间:2023-10-30 01:55:08 26 4
gpt4 key购买 nike

我有一个使用以下架构的数据库表:

CREATE TABLE users
(id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
email TEXT NOT NULL,
admin BOOLEAN NOT NULL,
active BOOLEAN NOT NULL,
created DATE NOT NULL);

我通过定义一个 users 实体来使用 Korma

(defentity users
(has-many tips))

然后我尝试使用以下函数来播种值:

(defn make-user-vals [username pass email]
"Creates an active, non-admin user"
{:username username,
:password (crypt/encrypt pass),
:email email,
:admin false,
:active true,
:created (java.util.Date.)})

(defn seed-users! []
(insert ent/users
(values
(users/make-user-vals "admin" "f00b4r" "foo@example.com"))))

(seed-users!) 失败并显示以下(对我来说不是真正有用的)消息:

Failure to execute query with SQL:
INSERT INTO users (username, password, email, admin, active, created) VALUES (?, ?, ?, FALSE, TRUE, ?) :: [admin $2a$10$AVdxz9HvYOyszhcXVrTVi.oBcbz9EZVfGZYNUI3iDMb0hj3igvpEy foo@example.com #<Date Wed Feb 15 21:59:10 CET 2012>]
ClassCastException java.lang.RuntimeException cannot be cast to java.sql.SQLException clojure.java.jdbc/print-sql-exception (jdbc.clj:350)

知道为什么吗?

(如果有帮助,查询数据库是有效的,所以它看起来不像是连接问题)

谢谢!

最佳答案

您需要使用 java.sql.Date 而不是 java.util.Date:

(java.sql.Date. 2012 2 16)

顺便说一下,您可能想调查一下 clj-time作为时间处理解决方案。 Java 的标准时间和日期相关类是完全疯狂的(正如当前问题所证明的那样)。

关于sql - 使用 Korma 插入数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9301292/

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