Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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
Morphia:作为java对象检索MongoDb文档_Java_Mongodb_Morphia - Fatal编程技术网

Morphia:作为java对象检索MongoDb文档

Morphia:作为java对象检索MongoDb文档,java,mongodb,morphia,Java,Mongodb,Morphia,我可以使用Morphia轻松地将java对象插入MongoDb数据库。现在,我想检索文档并将其映射为java对象。MongoDB文档如下所示: { "Name":"XXX", "Fingertemplate":{ "immutable" : { "size" : { "x" : 388 , "y" : 374} , "minutiae" : [ ........ 我的示例代码如下所示: @Entity(value="fingertable", noClassnameStored

我可以使用Morphia轻松地将java对象插入MongoDb数据库。现在,我想检索文档并将其映射为java对象。MongoDB文档如下所示:

{
    "Name":"XXX",
    "Fingertemplate":{ "immutable" : { "size" : { "x" : 388 , "y" : 374} , "minutiae" : [ ........
我的示例代码如下所示:

@Entity(value="fingertable", noClassnameStored=true)
public class RecordFingerTemplate {
    @Id private ObjectId id;
    @Property private String name;
    @Embedded private FingerprintTemplate fingertemp;
    public RecordFingerTemplate (){

    }
    public RecordFingerTemplate(String name)
    {
        this.name=name;
    }
    public ObjectId getId() {
        return id;
    }

    protected void setId( final ObjectId id ) {
        this.id = id;
    }
    public FingerprintTemplate getTemplate(){
        return fingertemp;
    }
    public void setTemplate(FingerprintTemplate template){
        this.fingertemp=fingertemp;
    }
}
为了将对象保存到数据库中,我使用的是
datastore.save(object)
,它工作得非常好 现在我想检索文档并获取指纹模板对象

List<RecordFingerTemplate> result=datastore.createQuery(RecordFingerTemplate.class)
                .field("name").containsIgnoreCase("john")
                .order("name")
                .asList();
List result=datastore.createQuery(RecordFingerTemplate.class)
.field(“名称”).containsSignoreCase(“约翰”)
.订单(“名称”)
.asList();
错误:**org.mongodb.morphia.mapping.MappingException:错误设置 来自ImmutableTemplate.size的转换器(PassthroughConverter)的值 到{“x”:388,“y……”**


尝试将
@Embedded
注释移动/添加到
指纹模板
,并显式调用您的类型上的
map()
。惰性映射有一些漏洞,我担心您可能会遇到这种情况