我一直在使用Spring-Data-Mongo一段时间没有问题的项目。在上一次POM更新中,我开始在日志文件中看到以下异常:
警告:2014年8月4日13:55:24 org.springframework.data.mongodb.core.mapping.BasicMongoPersistentProperty - 不允许自定义id属性的字段名称!自定义名称将不予考虑!
它没有提供任何关于这个问题出现的线索,所以我们一无所知。当对应用程序进行调用时,它会重复多次。我们确实找到了这里的起源:https://github.com/spring-projects/spring-data-mongodb/blob/11417144bd3574c35af06fde3a3c2e56a1dd5890/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentProperty.java#L85
有什么想法吗?
编辑: 为感兴趣的人添加了示例类:
@Document(collection="Account")
public class Account {
....
@Id
private String id = null;
....
}
答案 0 :(得分:2)
我听了上面的好评,并提出了一个断点。我很快发现我的一个课程使用了以下内容:
@Id
private String Id;
请注意ID而不是id。一旦改变,警告就会消失。
我完全支持有关弹簧数据提供正确报告的建议,而不仅仅是无意义的警告。
答案 1 :(得分:0)
我的想法是,您尝试在同一个字段中使用@Id
和@Field
。这是不允许的,因为Mongo中的id字段必须被称为_id
。由于你没有发布你的代码,因此很难说清楚。