我有一个名为thing_id
的MySQL字段,但我希望在我的代码中将其引用为:thing-id
。我可以定义这样的实体:
(defentity thing
(entity-fields :id [:thing_id :thing-id]))
这样当我拿东西时:
(select thing)
包含下划线的MySQL字段已转换:
[{:id 1 :thing-id 2}]
但我无法选择别名:
(select thing (where (= :thing-id 2)))
给出
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
Unknown column 'thing.thing-id' in 'where clause'
我可以在每个where
电话中修复它:
(select thing (where (= :thing_id 2)))
但我希望别名能同时运作。它似乎没有出现。有没有办法设置可以在select
中使用的别名?
答案 0 :(得分:2)
有点太晚了,但在这里......
...
(:require [camel-snake-kebab.core :refer [->kebab-case ->snake_case]])
...
(def db-spec
{:classname "com.mysql.jdbc.Driver"
:subprotocol "mysql"
:delimiters "`"
:unsafe true
:subname db-subname
:user db-user
:password db-password
:naming {:keys ->kebab-case
:fields ->snake_case}})