代码之家  ›  专栏  ›  技术社区  ›  3Qn

ArangoDB-BigDecimal

  •  1
  • 3Qn  · 技术社区  · 7 年前

    简单示例

    @Data
    @Document("product")
    @Accessors(chain = true)
    public class Product {
        @Id
        private String id;
        private BigDecimal cost;
    }
    

    ArangoDB配置:

    @Override
    public Builder arango() {
        final Builder builder = new Builder();
        arangoDbConfig.getHosts().forEach(host -> builder.host(host.getHost(), host.getPort()));
        return builder
                .user(arangoDbConfig.getUser())
                .password(arangoDbConfig.getPassword())
                .registerModule(new VPackJdk8Module());
    }
    

    正在读取文档生成异常:

    Invocation of init method failed; nested exception is org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate java.math.BigDecimal using constructor NO_CONSTRUCTOR with arguments 
    

    附属国:

    1. SpingBoot 1.5.9
    2. Arangodb弹簧数据1.0.1
    3. VelociPack-module-jdk8 1.0.2

    好的,忘记BigDecimal映射到HashMap。创建查询(biggerThan/lessThan)会很奇怪。我将数据类型更改为Double。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Buben Ivanov    6 年前

    您需要为包含BigDecimal的类定义JsonSerializer和JsonDeserializer,因为ArangoDB不支持这种类型的数据。 查看此arango序列化程序文档: link