У меня есть 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?