У меня есть база данных h2, и я пытаюсь создать представление со столбцом, который использует array_agg для некоторых текстовых столбцов:
create view full as
select av.*, at.tag from anno_v av
left join
(select id, array_agg(tags) as tag from anno_t group by id) at
on at.id = av.id
Я использую библиотеку java.jdbc 0.7.0 clojure для запросанабор результатов, и я пытаюсь преобразовать тип массива в вектор замыкания, используя параметр: row-fn (согласно этому примеру ), когда я делаю
(jdbc/query db ["SELECT * FROM full"] {:row-fn my-parser})
, где
(defn my-parser [row] (assoc row :tag (vec (.getArray (:tag row)))))
Я получаю сообщение об ошибке IllegalArgumentException No matching field found: getArray for class org.h2.jdbc.JdbcClob clojure.lang.Reflector.getInstanceField (Reflector.java:271)
Тот же запрос работает на моей реализации представления postgres (тот же синтаксис sql для создания представления, тот же код clojure).Кто-нибудь знает, почему столбец массива преобразуется в сгусток и как я могу вернуть его обратно в массив?Я видел этот комментарий о том, что тип массива jdbc не поддерживается для java dbs, но не уверен, применимо ли это к моему случаю.
спасибо!