使用 Korma 和 MySQL,我试图从名为 posts 的表中进行选择,默认情况下,发布日期的字段为 nil。
mysql> describe posts;
+-----------+--------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------------------+-------+
| id | int(11) | NO | PRI | 0 | |
| title | varchar(250) | YES | | NULL | |
| content | text | YES | | NULL | |
| status | tinyint(1) | YES | | 0 | |
| created | timestamp | NO | | CURRENT_TIMESTAMP | |
| published | timestamp | NO | | 0000-00-00 00:00:00 | |
| author | int(11) | NO | MUL | NULL | |
+-----------+--------------+------+-----+---------------------+-------+
7 rows in set (0.02 sec)
如果我尝试选择并使用已发布的字段,则会收到以下错误:
user=> (select posts (fields :id :title :content :status :created : published )) 使用 SQL 执行查询失败:SELECT posts.id、posts.title、posts.content、posts.status、posts.created、 posts.published FROM posts :: [] ClassCastException java.lang.RuntimeException 无法转换为 java.sql.SQLException clojure.java.jdbc/print-sql-exception (jdbc.clj:350)
如果我不使用已发布的字段,一切正常:
user=> (select posts (fields :id :title :content :status :created :author)) [{:id 1, :title "Hello World!", :content "欢迎使用世界上最先进的 Clojure Beat 引擎 Beats ! ", :status true, :created #, :author 1} {:id 2, :title "Hello World!, again!", :content "Sayin 't 'gain!欢迎来到 Beats,世界上最先进的 Clojure Beat引擎! ", :status true, :created #, :author 2}]
我该如何处理这个领域?我试图用一个简单的日志语句向我的实体添加一个转换函数,但它似乎甚至没有被调用。