Spring Mongo Exception - 不允许自定义id属性的字段名称!自定义名称将不予考虑

时间:2014-08-04 12:04:13

标签: java spring spring-data-mongodb

我一直在使用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;
    ....
}

2 个答案:

答案 0 :(得分:2)

我听了上面的好评,并提出了一个断点。我很快发现我的一个课程使用了以下内容:

@Id
private String Id;

请注意ID而不是id。一旦改变,警告就会消失。

我完全支持有关弹簧数据提供正确报告的建议,而不仅仅是无意义的警告。

答案 1 :(得分:0)

我的想法是,您尝试在同一个字段中使用@Id@Field。这是不允许的,因为Mongo中的id字段必须被称为_id。由于你没有发布你的代码,因此很难说清楚。