2016-11-17 46 views

回答

3

_class字段是爲允許域模型中的多態屬性編寫的。請參見本示例:

class Wrapper { 
    Object inner; 
} 

Wrapper wrapper = new Wrapper(); 
wrapper.inner = new Foo(); 

couchbaseOperations.save(wrapper); 

你看現場inner怎麼會得到Foo序列化和持久化。在事物的閱讀方面,我們現在必須找出哪種類型來創建對象,並且Wrapper中的類型信息是不夠的,因爲它僅指示Object

這就是爲什麼Spring數據對象映射持續存在一個額外字段(名稱可定製,但默認爲_class)以存儲該信息以檢查源文檔,從爲該字段編寫的值派生類型並最終映射該文檔回到那個特定類型。

Spring Data Couchbase參考文檔沒有真正記錄它,您可以在docs for the MongoDB module中找到有關這種工作方式的信息。我還爲Spring Data Couchbase創建了a ticket以改進文檔。

相關問題