2017-05-01 63 views
0

我是Kotlin開發的新手,我無法弄清楚如何處理這個問題。我必須映射到MongoDB的集合(春季數據的MongoDB)以下科特林數據類:Kotlin getter override + MongoDB

@Document(collection = "orders") 
data class OrderEntity 
@PersistenceConstructor 
constructor(@Id val id: ObjectId? = null, val place: String, var date: Date, 
      val closed: Boolean = false, val price: Int = 0) 

我想重寫默認ID getter和返回一個字符串代替的ObjectId的。似乎「ID」字段名稱不能更改,因爲我收到消息「不允許自定義ID屬性的字段名稱!自定義名稱將不被考慮!」所以我不能使用始終提示的_id解決方案。

一個人怎麼能做到這一點?我錯過了什麼嗎?

回答

0

我還沒有跟上最新和格林春天的數據蒙戈變化,但如果你只是改變你的ID爲字符串類型?而不是ObjectId 您的字符串值恰好是ObjectId的「字符串」十六進制代碼表示形式,Spring數據在保存到數據庫時會自動將其轉換爲ObjectId,並在讀取ObjectId時將其自動轉換爲字符串退出到豆。

基本上這個spring-data-mongo對你來說很神奇。我懷疑他們從1.x時代改變了這種行爲,但我可能是錯的。

+0

謝謝!你是對的,它的工作:) – Julieta