Генерация классов с десятичным типом данных с помощью avro-maven-plugin 1.9.0 - PullRequest
0 голосов
/ 04 июня 2019

У меня есть схема 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;.

...