ArangoDB:嵌套对象的自定义序列化

时间:2019-04-05 00:16:32

标签: arangodb

我正在尝试更改一个使用Java序列化作为使用ArangoDB的持久性机制的旧式整体应用程序。

在持久化包含其他对象的对象时遇到问题,因为这会导致以下异常:

VPackValueTypeException:预期类型为OBJECT`

我使用的是Arango的Java驱动程序,而不是Arango的spring数据。

我尝试使用Arango的默认序列化以及编写自己的序列化程序,与此同时,我也尝试使用Jackson作为序列化程序。

下面是我的一个序列化器的示例。

public class ArangoDbChunkSerializer extends ArangoDbSerializerDeserializer implements VPackSerializer<Chunk>
{
  protected static final String CHUNK_NAME = "chunk";
  protected static final String CHUNK_SIZE = "chunkSize";
  protected static final String ITEMS = "items";

  @Override
  public void serialize(VPackBuilder builder, String attribute, Chunk value, VPackSerializationContext context)
      throws VPackException
  {
    builder.add(attribute, ValueType.OBJECT, false);

    builder.add(SERIALIZABLE_CLASS_NAME, value.getSerializableClassName());
    builder.add(CHUNK_SIZE, value.getChunkSize());

    VPack vPack = new VPack.Builder()
        .registerSerializer(Row.class, new ArangoDbRowSerializer())
        .build();
    VPackSlice vPackSlice = vPack.serialize(value.getItems());

    builder.add(vPackSlice);

    builder.close();
  }
}

该异常发生在内部

builder.close();

任何帮助都会很棒-感谢您阅读此内容:)

0 个答案:

没有答案