1

我将 Ektorp 框架用作 CouchDB 的 Java“ORM”。它使用 Jackson 对 JSON 文档进行(反)序列化。

我有以下层次结构:

public class Animal extends CouchDbDocument {
    private int numberOfLegs;
    // Getters and setters ...
}

public class Dog extends Animal {
    private String name;
    // Getters and setters
}

我已将 3Animal秒和 1保存Dog到我的 CouchDB 中。

执行时List<Dog> dogs = dogRepository.getAll(),我得到一个包含 4 个对象的集合(其中 3 个nameNULL)。这是因为 Jackson/Ektorp 似乎默认不处理继承。

那么如何处理继承呢?我希望不会得到 4 个对象,而只会得到 1 个(Dog)。

更新 我只是试图删除继承。问题仍然存在。因此,Ektorp/Jackson 似乎无法检测到类类型。

4

2 回答 2

0

您是否尝试过转换 getAll() 返回的值?

List<Dog> dogs = (List<Dog>)dogRepository.getAll();
于 2016-02-09T09:54:02.713 回答
0

您需要指导杰克逊如何处理多态类型。看看杰克逊注解@JsonTypeInfo

于 2016-02-10T06:56:32.383 回答