我尝试使用reference生成一个包含POJO的Avro模式文件。
有了这段代码,我可以生成一个文件,但我不知道如何在每个对象字段中添加"default" : null
属性。
ObjectMapper mapper = new ObjectMapper(new AvroFactory());
AvroSchemaGenerator gen = new AvroSchemaGenerator();
mapper.acceptJsonFormatVisitor(SampleObject.class, gen);
AvroSchema schemaWrapper = gen.getGeneratedSchema();
org.apache.avro.Schema avroSchema = schemaWrapper.getAvroSchema();
String asJson = avroSchema.toString(true);
// ... (omitted) save string to .avsc file
对于POJO字段,我生成的是:
...
{
"name" : "fieldName",
"type" : [ "null", "string" ]
},...
但我想为所有字段生成的内容如下所示:
...
{
"name" : "fieldName",
"type" : [ "null", "string" ],
"default" : null
},...
在使用POJO生成模式时,如何在所有生成的字段中添加"default" : null
?我有POJO类,我想把它们转换成Avro模式文件。
1条答案
按热度按时间cqoc49vn1#
你就快成功了。只需将类型和默认值定义为联合即可。就像这样: