Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Morphia中的查询基类不';行不通_Java_Mongodb_Inheritance_Morphia - Fatal编程技术网

Java Morphia中的查询基类不';行不通

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

我使用的是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.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();