You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The POJO serializer cannot serialize nested custom objects when using ClickHouse Nested data types. It expects flattened List fields matching the flattened column names but doesn't traverse nested object graphs.
Steps to reproduce
Create a POJO with a nested custom object field (e.g., Address address)
Define ClickHouse table with Nested type (e.g., address Nested(street String, city String))
[main] INFO com.clickhouse.examples.client_v2.POJO2DbWriter - Table initialized. Registering class.
[main] WARN com.clickhouse.client.api.serde.POJOSerDe - No getter method found for column: addressstreet
[main] WARN com.clickhouse.client.api.serde.POJOSerDe - No setter method found for column: addressstreet
[main] WARN com.clickhouse.client.api.serde.POJOSerDe - No getter method found for column: addresscity
[main] WARN com.clickhouse.client.api.serde.POJOSerDe - No setter method found for column: addresscity
Exception in thread "main" java.lang.IllegalArgumentException: No serializer found for column 'address.street'. Did you forget to register it?
at com.clickhouse.client.api.Client.insert(Client.java:1238)
at com.clickhouse.examples.client_v2.POJO2DbWriter.flush(POJO2DbWriter.java:94)
at com.clickhouse.examples.client_v2.POJO2DbWriter.submit(POJO2DbWriter.java:89)
at com.clickhouse.examples.client_v2.Main.main(Main.java:59)
Expected Behaviour
POJO serializer should traverse nested object graphs and call getAddress().getStreet() when encountering nested custom objects.
Activity
chernser commentedon Jan 12, 2026
Good day, @bk-mz !
Thank you for reporting!
We will see how it can be implemented. The fastest way would be adding customer serializers.