ArangoDB Spring 数据 2,java.lang.Object / 无效的地图类型

ArangoDB Spring Data 2, java.lang.Object / invalid map type

我最近升级到 Spring Boot 2(因此 Spring data 2)并且拥有最新的 Arango java 驱动程序和 arango-spring-data 版本(分别为 5.0.1 和 3.1.1)

我现在无法获取类型为 java.lang.Object

的 属性

我收到这个错误

.... due to HttpClientErrorException: {"status":"BAD_REQUEST","timestamp":"2018-11-10 17:20:07","message":"Bad request. The server cannot complete the request as it is invalid.","detailMessage":"Unsupported Map type: java.lang.Object","invalidParameters":[]}

我可以看到,在 DefaultArangoConverter 中,如果类型是 Object,它就被视为地图...

if (typeToUse.isMap() || ClassTypeInformation.OBJECT.equals(typeToUse)) {
    return readMap(typeToUse, source);
}

.....

readMap(..)

final Map<Object, Object> map = CollectionFactory.createMap(type.getType(), keyType, source.size());

CollectionFactory 用于制作 "map" - 它不开心。

CollectionFactory.java
} else if (!Map.class.isAssignableFrom(mapType)) {
  throw new IllegalArgumentException("Unsupported Map type: " + mapType.getName());

还有其他人明白吗? 我的配置可能不正确,但我使用的是开箱即​​用的配置。

更新: 如果类型是 Map 它工作正常,但如果地图包含地图(即在 'values' 之一)我得到同样的错误。

这是当前版本arangodb-spring-data的一个bug。

我已经在 github 上创建了一个 PR 来修复它。