【发布时间】:2018-03-10 01:04:34
【问题描述】:
我正在使用 Spring boot 1.4.x 分支和 Spring Data MongoDB。
我想从HashMap 扩展一个 Pojo,使其能够动态保存新属性。
我知道我可以在 Entry 类中创建一个Map<String, Object> 属性以在其中保存我的动态值,但我不想有内部结构。我的目标是让根的入口类中的所有字段都像这样序列化它:
{
"id":"12334234234",
"dynamicField1": "dynamicValue1",
"dynamicField2": "dynamicValue2"
}
所以我创建了这个 Entry 类:
@Document
public class Entry extends HashMap<String, Object> {
@Id
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
还有这样的存储库:
public interface EntryRepository extends MongoRepository<Entry, String> {
}
当我启动我的应用程序时出现此错误:
Error creating bean with name 'entryRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.model.MappingException: Could not lookup mapping metadata for domain class java.util.HashMap!
有什么想法吗?
【问题讨论】:
-
Franck - 已回答您的问题,如果对您的理解有所帮助,请通过将答案标记为正确来确认 :)
-
你试过扩展 BasicDBObject 吗?类似
public class Entry extends BasicDBObject -
是的,同样的错误。
标签: java spring mongodb spring-data