In https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/table/common.html#convert-a-table-into-a-datastream-or-dataset <https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/table/common.html#convert-a-table-into-a-datastream-or-dataset>, POJO data type is available to convert to DataStream.
I would like to use POJO data type class with private fields. I wonder it is possible or not officially. Any currently it does not work. Codes: ————— CsvTableSource as = CsvTableSource.builder() .path("aa.csv") .field("name", STRING) .field("value", INT) .build(); Table aa = tEnv.fromTableSource(as); tEnv.toAppendStream(aa, P.class); ————— public class P implements Serializable { private String name; private Integer value; } ————— Above codes, I got below error message: ========== Exception in thread "main" org.apache.flink.table.api.TableException: Arity [2] of result [ArrayBuffer(String, Integer)] does not match the number[1] of requested type [GenericType<aa.P>]. at org.apache.flink.table.api.TableEnvironment.generateRowConverterFunction(TableEnvironment.scala:1165) at org.apache.flink.table.api.StreamTableEnvironment.getConversionMapper(StreamTableEnvironment.scala:423) at org.apache.flink.table.api.StreamTableEnvironment.translate(StreamTableEnvironment.scala:936) at org.apache.flink.table.api.StreamTableEnvironment.translate(StreamTableEnvironment.scala:866) at org.apache.flink.table.api.java.StreamTableEnvironment.toAppendStream(StreamTableEnvironment.scala:202) at org.apache.flink.table.api.java.StreamTableEnvironment.toAppendStream(StreamTableEnvironment.scala:156) at ... ========== When fields of class P are changed to “public”, it works well. ————— public class P implements Serializable { public String name; public Integer value; } ————— Thanks, skonmeme