gpt4 book ai didi

java - Morphia:将 MongoDb 文档检索为 java 对象

转载 作者:行者123 更新时间:2023-12-01 18:00:08 25 4
gpt4 key购买 nike

我可以使用 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();

Error: ** org.mongodb.morphia.mapping.MappingException:Error setting value from converter (PassthroughConverter) for ImmutableTemplate.size to {"x": 388, "y.........**

最佳答案

尝试将 @Embedded 注释移动/添加到 FingerprintTemplate 并在您的类型上显式调用 map()。惰性映射存在一些缺陷,我担心您可能会遇到这种情况。

关于java - Morphia:将 MongoDb 文档检索为 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60652523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com