2 votes

java.math.BigDecimal vers le fichier Avro .avdl

J'ai des difficultés à écrire un schéma Avro pour le type java.math.BigDecimal, j'ai essayé ce qui suit :

  1. Basé sur l'Avro officiel doc Je sais que je dois définir les types logiques moi-même pour supporter BigDecimal, mais ce lien donne des exemples seulement en avsc, j'essaie de le comprendre en avdl.
  2. Basé sur Avro doc et ceci exemple J'ai écrit en dessous d'avdl :

`

@namespace("test")
protocol My_Protocol_v1 {

  record BigDecimal {
        @java-class("java.math.BigDecimal") string value;
  }

`

Mais cela ne fonctionne pas : Ce schéma IDL se compile bien et peut générer une classe Java appelée BigDecimal, mais je ne peux pas vraiment utiliser le BigDecimal généré comme java.math.BigDecimal, qu'est-ce qui ne va pas ? ou Comment dois-je faire ?

Merci beaucoup.

1voto

FisherCoder Points 819

OK, j'ai envoyé un courriel à la liste de diffusion d'Apache Avro dev et j'ai reçu une réponse de Doug Cutting (merci beaucoup Doug).

Je crois que cela a déjà été mis en œuvre, mais pas encore publié.

Il a été mis en œuvre dans : https://issues.apache.org/jira/browse/AVRO-1847

Il est prévu de l'inclure dans la version 1.8.2, qui devrait bientôt sortir.

0voto

Taylor O'Connor Points 96

Juste pour vous éclairer sur la façon dont cela fonctionne dans la nouvelle version :
Nous venons de commencer à utiliser la rc4 de 1.8.2 et vous pouvez créer des champs BigDecimal avec la syntaxe suivante :

record Thing {
    decimal(10,2) foo;
}

El Thing aura un BigDecimal propriété foo avec une précision de 10 et une échelle de 2.

0voto

guestuser Points 1

Decimal(10,2) ne génère pas de type de données décimales dans le schéma avsc bien que la version du compilateur ait changé pour la version 1.8.2 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X