1
我猜這個類型用於CRUD操作。它用於除此之外的其他任何事情嗎?我想知道如何配置它如何填充。Spring Data Couchbase使用_class字段做什麼?
我猜這個類型用於CRUD操作。它用於除此之外的其他任何事情嗎?我想知道如何配置它如何填充。Spring Data Couchbase使用_class字段做什麼?
_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以改進文檔。