_class 字段和 spring 数据 couchbase

_class field and spring data couchbase

所以,我试图找到一种方法来 remove/rename(并更改字段值)来自 spring data couchbase 生成的文档中的 _class 字段作为文档将由一项服务存储,很可能由完全不同的人使用。

我正在为 spring couchbase 使用 api 并通过一些试验和错误发现我可以使用自定义值重命名 _class 字段以下方式 ->

1) 在继承 AbstractCouchbaseConfiguration 的 class 中覆盖 typeKey 方法。例如,假设我们覆盖了 typeKey 来执行以下操作 ->

@Override public String typeKey() { return "type"; }

2)在存储数据到couchbase的POJO中,在typeKey方法的return值中添加一个与你给的字段名相同的字段,并根据需要给它自定义值-

private final String type = "studentDoc";

我想检查这是否是解决此问题的有效方法or/and现在有一些更好的方法可以用来做这样的事情

Spring 数据库需要一个具有完全限定名称 class 的字段,因为它的价值在于了解将数据从 couchbase 反序列化到哪个 class 对象。默认情况下,此字段将被命名为 _class,但可以通过覆盖您提到的 Couchbase 配置(扩展 AbstractCouchbaseConfiguration)中的 typeKey() 方法来修改。

@Override
public String typeKey() {
    return "customType";
}

但据我所知,您不应修改该字段的值,因为库无法理解将数据反序列化到哪个对象中。

这是目前使用 spring 数据的唯一方法,我们想添加一些额外的方法来做到这一点,但我们仅限于 Spring 数据接口契约.这就是为什么大多数额外的配置都是通过 AbstractCouchbaseConfiguration 完成的。