使用 Korma 插入数据库行
我有一个使用以下架构的数据库表:
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" "[email protected]"))))
(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 [email protected] #<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)
知道为什么吗?
(如果有帮助,查询数据库有效,所以它看起来不像连接问题)
谢谢!
I have a DB table that uses the following schema:
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);
I use Korma by defining a users
entity
(defentity users
(has-many tips))
And I try to seed values using the following functions:
(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" "[email protected]"))))
(seed-users!)
fails with the following (not really informative to my eyes) message:
Failure to execute query with SQL:
INSERT INTO users (username, password, email, admin, active, created) VALUES (?, ?, ?, FALSE, TRUE, ?) :: [admin $2a$10$AVdxz9HvYOyszhcXVrTVi.oBcbz9EZVfGZYNUI3iDMb0hj3igvpEy [email protected] #<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)
Any idea why?
(if that helps, querying the DB works, so it does not look like a connection problem)
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用
java.sql.Date
而不是java.util.Date
:顺便说一句,您可能想调查
clj-time
作为时间处理解决方案。 Java 的标准时间和日期相关类完全是疯狂的(正如本期所证明的那样)。You need to use
java.sql.Date
rather thanjava.util.Date
:Incidentally, you might want to investigate
clj-time
as a time-handling solution. Java's standard time-and-date-related classes are completely insane (as evidenced by the present issue).