У меня есть схема Avro с некоторыми полями, определенными как десятичный логический тип.Из этой схемы я генерирую классы, используя avro-maven-plugin (используя версию 1.9.0).Я хотел бы избежать генерации типа ByteBuffer и использовать вместо него BigDecimal.
Я нашел в старых вопросах (например, здесь ) для использования версии 1.8.2.Я попробовал это и затем обновил до 1.9.0 и все еще не могу получить правильный тип данных.
Схема:
{
"name": "TUR_ID",
"type": [
"null",
"bytes"
],
"default": null,
"logicalType": "decimal",
"precision": 16,
"scale": 0
}
Конфигурация плагина в pom.xml:
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro.version}</version>
<executions>
<execution>
<id>schemas</id>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
<goal>protocol</goal>
<goal>idl-protocol</goal>
</goals>
<configuration>
<stringType>String</stringType>
<enableDecimalLogicalType>true</enableDecimalLogicalType>
<sourceDirectory>${project.basedir}/src/main/resources/</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
Фактический вывод - @Deprecated public java.nio.ByteBuffer TUR_ID;
, и я хотел бы получить @Deprecated public java.math.BigDecimal TUR_ID;
.