使用Hikari的包装JDBC连接执行YeSQL查询时出错

时间:2016-09-13 17:24:16

标签: jdbc clojure

尝试使用YeSQL执行sql查询时出错。

db-spec HikariProxyConnection wrapping org.postgresql.jdbc4.Jdbc4Connection is missing a required parameter

我在我的SQL文件中定义了一个find-by-id函数,如下所示:

-- name: find-by-id
-- Selects the filepath to a menu by id
SELECT filepath FROM menu WHERE id = :id;

我正在调用这样创建的函数:

(find-by-id {:id "123"} {:connection (jdbc/get-connection {:datasource datasource)})

我的数据源定义如下:

(def spec {:maximum-pool-size  3
   :adapter            "postgresql"
   :username           "user"
   :database-name      "dbname"
   :server-name        "localhost"
   :port-number        5432})
(def datasource (make-datasource spec))

我可以使用完全相同的连接映射将其传递给with-db-transaction并使用返回的连接,但由于某种原因它不能像这样工作。

1 个答案:

答案 0 :(得分:1)

找到解决方案:

要获得一个可以使用数据源传递给YeSQL查询的jdbc/get-connection连接对象,显然你必须像这样创建它:

(defn get-connection
  [db]
  {:connection (jdbc/get-connection {:connection {:datasource datasource})})

感谢您在评论中提供的帮助!