Morphia:作为java对象检索MongoDb文档
我可以使用Morphia轻松地将java对象插入MongoDb数据库。现在,我想检索文档并将其映射为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
{
"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()
。惰性映射有一些漏洞,我担心您可能会遇到这种情况