2013-02-13 71 views
0

mongodb的Spring数据将名为“id”的字段特殊处理为:http://static.springsource.org/spring-data/data-mongo/docs/1.0.0.M5/reference/html/#d0e1508,因为它试图将名为id的字段映射到MongoDB中的_id字段。有没有办法禁用这种行为?我希望mongodb ObjectId只映射到具有明确@Id注释的字段。目前我在mongodb中有一个名为id的字段,这不是我可以改变的东西,而且我发现将spring数据映射到pojo的正确id值几乎是不可能的。Spring数据,_id字段映射

回答

0

当前版本的Spring Data MongoDB(1.2.0.RELEASE)会拒绝具有多个id属性(带注释或默认值)的类。如果您认为我们应该更加宽容(忽略所有默认属性,如果一个属性明确注明@Id)请随时在我们的JIRA中打开一张票。实施当前行为是为了急切发现从默认映射转移到明确注释时可能发生的潜在错误配置。

+0

问题是,一个名为id的字段不一定是_id,它看起来没有办法让春天看到否则。我会打开Jira,但似乎我在短期内唯一的选择是morphia。 – Kevin 2013-02-13 13:56:45

+0

我的另一个选择是使用自定义转换器,但在那一点上我已经完成了自己的对象映射,而且我不确定弹簧数据提供了什么值。 – Kevin 2013-02-13 15:09:10

+0

嗨,奥利弗,如果DEFAULT_ID_NAMES数组更改为只包含_id(这里:https://github.com/SpringSource/spring-data-mongodb/blob/master/spring-data-mongodb/src/main/java/org /springframework/data/mongodb/core/convert/QueryMapper.java),会为我产生所需的行为吗? – Kevin 2013-02-13 15:20:43