Проблема при автоматической десериализации нескольких уровней вложенных POJO с перечислением и полями, присутствующими в потоках Kafka
У меня возникает эта проблема при автоматической десериализации POJO в потоках kafka, все поля после enum становятся нулевыми. Может кто-нибудь посоветовать, как с этим справиться. Аннотирование поля в перечислении с помощью @JsonValue, кажется, периодически решает его, но мы получаем проблемы на других фронтах, поскольку значения не идентифицируются напрямую
**POJO 1**
public class ABC {
@NotNull
private EventType eventType; // ENUM
@Valid
@NotNull
private Payload payload; // Another POJO
private String id;
private int level = 0;
}
//**enum**
@JsonFormat(shape=JsonFormat.Shape.Object)
public enum EventType{
Event_A(),
Event_B();
@Getter
private final String type;
@Hidden
@Getter
private final String name;
@Hidden
@Getter
private final Map<String,String> location;
@Hidden
@Getter
private final POJO4[] keyType;
//constructor to initialise
public EventType(....) {}
@JsonCreator
public static EventType forType( @JsonProperty("type") String type ) {
return EventType.valueOf(type);
}
}
**POJO2**
public class DEF {
private ABC abc;
private DateTime time;
}
**POJO3**
public class KafkaStream {
private DEF def;
}
// send message class
public class SendKafka {
streamBridge.send();
}
//KafkaStreamFunction
public Function<KStream<String,KafkaClass>,Kstream<String,KafkaClass>> process() {
// HERE the values of payload,id,level come as null( not able to auto deserialise properly)
}