Java Morphia中的查询基类不';行不通
我使用的是Mongo java驱动程序3.0.0-beta2和morphia 0.110。 我有以下课程:Java Morphia中的查询基类不';行不通,java,mongodb,inheritance,morphia,Java,Mongodb,Inheritance,Morphia,我使用的是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注册 我有一个作为猫对象存储的动物的id。 此查询返回空值: datastore.ge
@Entity
public abstract class Animal {
protected ObjectID id;
}
@Entity
public class Cat extends Animal {
public String name;
}
两者都在初始化时向morphia注册
我有一个作为猫对象存储的动物的id。
此查询返回空值:
datastore.get(Animal.class, id);
当此查询为我提供正确的对象时:
datastore.get(Cat.class, id);
我是做错了还是这是一个错误?我想做的是可能的吗?我认为您需要为这些类型的查询定义集合才能工作(这来自官方文档):
@Entity(“动物”)抽象类动物{String name;}
@实体(“动物”)猫扩展动物{…}
@实体(“动物”)狗扩展动物{…}
List animals=ds.createQuery(Animal.class).asList();
但我不确定你在这里想要实现什么。或许泛型是更好的解决方案(提供一个泛型的“getbyid”)
@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();