我正在使用Mongo java驱动程序3.0.0-beta2和morphia 0.110。 我有以下课程:
@Entity
public abstract class Animal {
protected ObjectID id;
}
@Entity
public class Cat extends Animal {
public String name;
}
两者都在初始化时注册了morphia。
我有一个存储为Cat对象的动物的id。 此查询返回null:
datastore.get(Animal.class, id);
虽然这个查询给了我正确的对象:
datastore.get(Cat.class, id);
我做错了还是错误?我正在努力做甚么可能吗?
答案 0 :(得分:1)
我认为您需要为这些类型的查询定义集合(这来自官方文档):
@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();
但我不确定你在这里想要达到的目的。也许泛型会是一个更好的解决方案(提供通用&#34; get by id&#34;)?