2013-02-13 91 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