1
YeSQLを使用してSQLクエリを実行しようとするとエラーが発生します。HikariでラップされたJDBC接続でYeSQLクエリを実行するとエラーが発生する
-- name: find-by-id
-- Selects the filepath to a menu by id
SELECT filepath FROM menu WHERE id = :id;
そして、私はこのよう作成された関数呼び出しています:
db-spec HikariProxyConnection wrapping org.postgresql.jdbc4.Jdbc4Connection is missing a required parameter
私はこのように私のSQLファイルにfind-by-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
に渡して返された接続を使用する場合、全く同じ接続マップを使用できますが、何らかの理由でこのように動作しません。
あなたがデータソースを使用してYeSQLクエリに渡すことができjdbc/get-connection
との接続オブジェクトを取得するには、明らかにあなたはこのようにそれを作成する必要があります:解決策が見つかり
この場合、エラーメッセージはかなり記述的です。未処理の接続オブジェクト( '{:connection ...}'でラップされていないもの)をどこかの 'jdbc/get-connection'に渡します。 – OlegTheCat
私はこの '{:datasource datasource}'のように 'get-connection'にデータソースを渡しました。返されたオブジェクトを 'with-db-transaction'に使うとうまく動作します。いずれにしても、あなたは正しく、別の '{:connection ...}'でラップする必要がありました。どうもありがとうございました。 – jannikko