Я создаю классы Java из файла AVSC, используя avro-maven-plugin, и хочу добавить аннотацию @JsonProperty к некоторым полям класса.
Я хочу понять, как я могу это сделать. В файле Record.vm в конфигурации упоминается тег javaAnnotation, но он не работает должным образом.
pom.xml
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro.version}</version>
<dependencies>
...
</dependencies>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
<configuration>
<fieldVisibility>PRIVATE</fieldVisibility>
<enableDecimalLogicalType>true</enableDecimalLogicalType>
<stringType>String</stringType>
<templateDirectory>/com/.../avro/compiler/specific/templates/</templateDirectory>
<dateTimeLogicalTypeImplementation>joda</dateTimeLogicalTypeImplementation>
</configuration>
</execution>
</executions>
Снипит из Record.vm
Я хочу, чтобы сгенерированный класс выглядел так
Я пробовал что-то подобное, но это не сработало
[{
"namespace": "com..avro",
"type": "record",
"name": "myClass",
"fields": [
{
"name": "my_variable",
"type": "int",
"javaAnnotations":"com.fasterxml.jackson.annotation.JsonProperty(\"my_variable\")",
"javaAnnotations":[
"com.fasterxml.jackson.annotation.JsonProperty(\"my_variable\")"
]
}
]
}]




Вы можете указать как аннотации на уровне класса, так и аннотации на уровне поля, добавив поле «javaAnnotation» в соответствующем месте определения avsc:
[{
"namespace": "com..avro",
"type": "record",
"name": "myClass",
"javaAnnotation": "MyClassAnnotation",
"fields": [
{
"name": "my_variable",
"type": "int",
"javaAnnotation": "com.fasterxml.jackson.annotation.JsonProperty(\"my_variable\")"
}
]
}]