Tôi đã một enum trong postgresql được xác định như sau:Clojure/postgresql: Làm cách nào để truy cập các giá trị enum từ các kết quả Jdbc4Array?
create type color as enum ('yellow', 'purple', 'white', 'black');
Và tôi có thể đến được Jdbc4Array như vậy:
(def colors
((first (sql/with-connection db/db
(sql/with-query-results res
["select enum_range(null::color)"]
(doall res)))) :enum_range))
Điều này cho thấy một đối tượng như thế này:
#<Jdbc4Array {yellow,purple,white,black}>
Nhưng hãy thử những điều bình thường ném một ngoại lệ:
(.getArray colors) => stream closed
Vì vậy, tôi hình dung tôi cần phải truy cập vào mảng trước khi kết nối được đóng:
(def colors
((sql/with-connection db/db
(sql/with-query-results res
["select enum_range(null::color)"]
(.getArray ((first (doall res)) :enum_range))))))
Nhưng trong trường hợp này tôi có được ngoại lệ này:
Method org.postgresql.jdbc4.Jdbc4Array.getArrayImpl(long,int,Map)
is not yet implemented.
Sinister. Tôi có thể làm gì ở đây?