сериализация psql результирующего с array_agg в Java - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть 2 таблицы с данными

tripsheet=# select * from t1;
 c1 | c2 
----+----
  1 |  2
  1 |  3
(2 rows)

tripsheet=# select * from t2;
 c3 | c4 
----+----
  1 | 11
  1 | 12
(2 rows)

С запросом

tripsheet=# select t1.*,array_agg(t2.*) from t1, t2 where t1.c1 = t2.c3 group by t1.c1, t1.c2;
 c1 | c2 |      array_agg      
----+----+---------------------
  1 |  3 | {"(1,11)","(1,12)"}
  1 |  2 | {"(1,11)","(1,12)"}
(2 rows)

Я использую Java JDBC для обработки набора результатов, я не могу преобразовать (1,11) соответствующему pojo.

следующий мой код

String sql="select t1.*,array_agg(t2.*) from t1, t2 where t1.c1 = t2.c3 group by t1.c1, t1.c2;";
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()) {
                Array array = rs.getArray("array_agg");
                Object[] ints = (Object[]) array.getArray();
                ResultSet rs2 = array.getResultSet();
                while(rs2.next()) {
                    rs2.getObject(1);
                    System.out.println(rs2.getObject(2));
                }
            }

Я могу получить результат как

(1,11)
(1,12)
(1,11)
(1,12)

Но я не смог их сломать, чтобы получитьотдельные поля 1 и 11.

Вышеуказанные кортежи / объекты относятся к org.postgresql.util.PGject. Это должно быть сопоставлено с T2 pojo.

Возможно ли преобразовать PGobject в T2 pojo?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...