我猜该类型用于 CRUD 操作。除此之外,它还有其他用途吗?我想知道配置它的填充方式会产生什么影响。
问问题
542 次
1 回答
4
该_class
字段被写入以允许您的域模型中的多态属性。请参阅此示例:
class Wrapper {
Object inner;
}
Wrapper wrapper = new Wrapper();
wrapper.inner = new Foo();
couchbaseOperations.save(wrapper);
您会看到该字段inner
将如何被Foo
序列化和持久化。在阅读方面,我们现在必须找出要创建对象的类型,而其中的类型信息Wrapper
不足以这样做,因为它只声明了Object
.
这就是为什么 Spring Data 对象映射保留一个附加字段(名称可自定义但默认为_class
)来存储该信息以便能够检查源文档,从为该字段写入的值中派生一个类型,并最终将该文档映射回该特定类型.
Spring Data Couchbase 参考文档并没有真正记录它,您可以在 MongoDB 模块的文档中找到有关其工作方式的信息。我还为 Spring Data Couchbase 创建了一张票,以改进文档。
于 2016-11-18T09:02:03.720 回答