私はClojureには新しく、POSTGRESデータベースでClojure、Compojure、およびjava.jdbcを使用して小さなWeb APIを作成しています。Jdbc4ArrayからClojure vecを抽出する
私のテーブルの一つは、その列の一つとして、整数の配列が含まれ、そのように定義されています
(sql/create-table-ddl
:games
[:id :serial "PRIMARY KEY"]
[:active :BOOLEAN "NOT NULL"]
[:players "integer[]" "DEFAULT array[]::integer[]"]
[:player_order "integer[]" "DEFAULT array[]::integer[]"]
[:created_at :timestamp
"NOT NULL" "DEFAULT CURRENT_TIMESTAMP"])
私は、次のような[]整数の1を照会しようとしています:
(sql/query postgres [(str "SELECT * FROM games WHERE id=" game-id)])
しかし、Postgresは(代わりに、VECの)Jdbc4Arrayを返します。
:player_order #<Jdbc4Array {1,2,3,4}
org.postgresql.jdbc4.Jdbc4Array
私はO把握するように見えることはできませんこれをClojure vecに変える方法。私はいくつかの例を見てきましたが、私はそうではないストリームを使用しているようです。このクエリを間違って実行していますか?私はこれをClojure vecにどのように変換しますか?
あなたがデータにアクセスしてみましたがへの呼び出しで返さ'getResultSet'?これを行うには、Java interopを使用します。 –
@ChrisMurphyアイデアをありがとう。私は '.getResultSet'と' .getJavaArray'を試しましたが、私はこのエラーを受け取ります: 'org.postgresql.util.PSQLException:この接続は閉じました。 – Mike2012