如何通过代码创建Avro递归架构?

时间:2018-09-25 00:38:53

标签: java schema avro avro-tools

我无法通过Schema类在Avro中创建递归模式。

即我要这样做:

Schema schema = Schema.createRecord("TypeName", "", "namespace", false);
Schema.Field recursiveField = new Schema.Field("recursiveField", schema, null, NullNode.getInstance());

// Create a parent schema of the same type name and add the recurisve field to this
Schema parentSchema = Schema.createRecord("TypeName", null, "namespace", false);
parentSchema.setFields(Collections.singletonList(recursiveField));

但这不起作用。当我尝试使用parentSchema.toString()时,由于子模式中没有字段,因此它抛出NullPointerException。

我无法通过json执行此操作,因为我还将根据需要动态提取更多字段。

有人可以指出这个缺陷吗?

谢谢。

0 个答案:

没有答案