我在我的java应用程序中使用spring数据mongodb框架来将我的应用程序数据保存在mongodb中。在我的java模型类中,我有两个字段。
1)一个字段在其上显示@Id注释。 2)字段ID
关于映射到保存的mongodb文档中的_id键,哪一个会得到偏好,或者我会得到多个映射的错误。我正在使用spring data mongo 1.6.1。我知道我可以测试一下,但我没有本地环境设置。
答案 0 :(得分:10)
答案在文档http://docs.spring.io/spring-data/data-mongo/docs/1.7.0.M1/reference/html/
中MongoDB要求你有一个' _id'所有文件的字段。如果 你没有提供一个驱动程序会给一个带有的ObjectId 生成的价值。当使用MongoMappingConverter时 某些规则控制如何映射Java类的属性 这个' _id'字段。
以下概述了将哪些属性映射到' _id' 文件字段:
使用@Id注释的属性或字段 (org.springframework.data.annotation.Id)将映射到' _id' 字段。
将映射没有注释但名为id的属性或字段 到' _id'字段。
正如您所见,@ Id(objId)优先。
答案 1 :(得分:0)
您可以使用@Field("id") 禁用将 id 字段映射到 _id