次のスキーマを使用する DB テーブルがあります。
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)
理由はありますか?
(それが役立つ場合、DBのクエリは機能するため、接続の問題のようには見えません)
ありがとう!