Hologres数据查询时PgArray问题
问题记录
com.alibaba.fastjson.JSONException: write javaBean error, fastjson version 1.2.83, class org.postgresql.jdbc.PgResultSet, fieldName : resultSet
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:541)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154)
at com.alibaba.fastjson.serializer.JSONSerializer.writeWithFieldName(JSONSerializer.java:360)
at com.alibaba.fastjson.serializer.ASMSerializer_18_PgArray.write(Unknown Source)
at com.alibaba.fastjson.serializer.ListSerializer.write(ListSerializer.java:135)
at com.alibaba.fastjson.serializer.JSONSerializer.writeWithFieldName(JSONSerializer.java:360)
at com.alibaba.fastjson.serializer.JSONSerializer.writeWithFieldName(JSONSerializer.java:338)
at com.alibaba.fastjson.serializer.ASMSerializer_13_DataQueryResultDTO.write(Unknown Source)
at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:312)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:793)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:731)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:688)
Caused by: java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc.PgResultSet.getHoldability() is not yet implemented.
at org.postgresql.Driver.notImplemented(Driver.java:699)
at org.postgresql.jdbc.PgResultSet.getHoldability(PgResultSet.java:3690)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.alibaba.fastjson.util.FieldInfo.get(FieldInfo.java:571)
at com.alibaba.fastjson.serializer.FieldSerializer.getPropertyValueDirect(FieldSerializer.java:143)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:284)
... 110 common frames omitted
原因:resultSet中某个字段值类型是PgArray,Json序列化报错,在遍历rs时添加 object instanceof PgArray处理
while (rs.next()) {
LinkedHashMap jsonObj = new LinkedHashMap<String, Object>();
// 遍历每一列
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnLabel(i).replace("\"", "");
Object object = rs.getObject(columnName);
if (object instanceof ClickHouseArray) {
ClickHouseArray result = (ClickHouseArray) object;
object = result.getArray();
} else if (object instanceof PrestoArray) {
PrestoArray result = (PrestoArray) object;
object = result.getArray();
} else if (object instanceof PgArray) {
PgArray result = (PgArray) object;
object = result.getArray();
} else if (object instanceof Long) {
object = String.valueOf(object);
}
jsonObj.put(columnName, object);
}
list.add(jsonObj);
}

浙公网安备 33010602011771号