Morphia 中的查询基础 class 不起作用

query base class in Morphia doesn't work

我正在使用 Mongo java 驱动程序 3.0.0-beta2 和吗啡 0.110。 我有以下 类:

@Entity
public abstract class Animal {
    protected ObjectID id;
}
@Entity
public class Cat extends Animal {
    public String name;
}

两者都在初始化时注册了吗啡。

我有一个存储为 Cat 对象的 Animal 的 ID。 此查询 returns 空:

datastore.get(Animal.class, id);

虽然此查询为我提供了正确的对象:

datastore.get(Cat.class, id);

我是做错了还是有错误?我正在尝试做的事情是否可行?

我认为您需要为这些类型的查询定义集合(来自官方文档):

@Entity("animals") abstract class Animal { String name; }
@Entity("animals") Cat extends Animal { ... }
@Entity("animals") Dog extends Animal { ... }

List<Animal> animals = ds.createQuery(Animal.class).asList();

但我不确定你在这里想要达到什么目的。也许泛型会是一个更好的解决方案(提供一个泛型 "get by id")?