找不到 java.util.Date 的映射元数据
No mapping metadata found for java.util.Date
我正在使用 spring-boot + spring-data-rest + spring-data-mongodb 我有一个 class通过存储库公开,我最近从 Spring Boot.
的 1.3.7 版升级到 1.4.3 版
问题是如果我保留字段 createdDate 可用...检查 API
时出现以下错误
去年我有一个类似的项目,它在 Spring Boot 1.3.2 上运行良好,不需要实施一些自定义解决方案或配置其他东西。
稍后编辑 刚刚降级到 1.3.2 ...同样的错误...
"No mapping metadata found for java.util.Date"
public class SomeMessage {
@Id
private String id;
private Map<String,String> messageDetails;
private String replyToId;
private String contactFormId;
//@CreatedDate
private Date createdDate;
//...getters, setters, what not
}
稍后编辑 2 ...完整堆栈跟踪
org.springframework.data.mapping.model.MappingException: No mapping metadata found for java.util.Date
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:229) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1197) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access0(MappingMongoConverter.java:79) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1145) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:871) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.doWithPersistentProperty(MappingMongoConverter.java:284) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.doWithPersistentProperty(MappingMongoConverter.java:272) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:322) ~[spring-data-commons-1.12.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:272) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:232) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:192) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:188) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:79) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:2295) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1949) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1767) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1750) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:624) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:357) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:219) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_72]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_72]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_72]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_72]
您缺少 POJO class 的 @Document
注释。
来自docs,
@Document - applied at the class level to indicate this class is a
candidate for mapping to the database. You can specify the name of the
collection where the database will be stored.
更新: 虽然它应该在没有@Document 的情况下工作,因为它不是强制注释。
我有一条消息有类似的问题:
No mapping metadata found for class org.bson.types.ObjectId
我的实体有 @Document
注释。
该实体中有一个字段 Set<ObjectId>
,注释为 @DBRef(lazy = true)
。
删除 @DBRef
注释解决了我的问题。
我正在使用 spring-boot + spring-data-rest + spring-data-mongodb 我有一个 class通过存储库公开,我最近从 Spring Boot.
的 1.3.7 版升级到 1.4.3 版问题是如果我保留字段 createdDate 可用...检查 API
时出现以下错误去年我有一个类似的项目,它在 Spring Boot 1.3.2 上运行良好,不需要实施一些自定义解决方案或配置其他东西。
稍后编辑 刚刚降级到 1.3.2 ...同样的错误...
"No mapping metadata found for java.util.Date"
public class SomeMessage {
@Id
private String id;
private Map<String,String> messageDetails;
private String replyToId;
private String contactFormId;
//@CreatedDate
private Date createdDate;
//...getters, setters, what not
}
稍后编辑 2 ...完整堆栈跟踪
org.springframework.data.mapping.model.MappingException: No mapping metadata found for java.util.Date
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:229) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1197) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access0(MappingMongoConverter.java:79) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1145) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:871) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.doWithPersistentProperty(MappingMongoConverter.java:284) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.doWithPersistentProperty(MappingMongoConverter.java:272) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:322) ~[spring-data-commons-1.12.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:272) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:232) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:192) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:188) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:79) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:2295) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1949) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1767) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1750) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:624) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:357) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:219) ~[spring-data-mongodb-1.9.6.RELEASE.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_72]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_72]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_72]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_72]
您缺少 POJO class 的 @Document
注释。
来自docs,
@Document - applied at the class level to indicate this class is a candidate for mapping to the database. You can specify the name of the collection where the database will be stored.
更新: 虽然它应该在没有@Document 的情况下工作,因为它不是强制注释。
我有一条消息有类似的问题:
No mapping metadata found for class org.bson.types.ObjectId
我的实体有 @Document
注释。
该实体中有一个字段 Set<ObjectId>
,注释为 @DBRef(lazy = true)
。
删除 @DBRef
注释解决了我的问题。