所以,我试图找到一种方法来删除/重命名(并更改字段值)_class字段,该字段来自spring数据couchbase生成的文档,因为文档将由一个服务存储,并且所有可能性都被某人使用完全不同。
我正在使用api for spring couchbase并通过一些试验和错误发现我可以使用以下方式使用自定义值重命名_class字段 - >
1)在继承AbstractCouchbaseConfiguration的类中重写typeKey方法。例如,假设我们覆盖了typeKey以执行以下操作 - >
@Override
public String typeKey() {
return "type";
}
2)在将数据存储到couchbase的POJO中,在typeKey方法的返回值中添加一个字段名称相同的字段,并根据需要为其提供自定义值 -
private final String type = "studentDoc";
我想检查这是否是一种有效的方式来实现这个或/和现在有一些更好的方法来做这样的事情
这是目前使用spring数据的唯一方法,我们想添加一些额外的方法来做到这一点,但我们仅限于Spring Data接口契约。这就是为什么大多数额外配置都是通过AbstractCouchbaseConfiguration完成的。
Spring数据库需要一个具有完全限定类名的字段作为其值,以便了解将数据从couchbase反序列化的类对象。默认情况下,此字段将命名为_class
,但可以通过覆盖Couchbase配置中的typeKey()
方法(扩展AbstractCouchbaseConfiguration
)进行修改,如您所述。
@Override
public String typeKey() {
return "customType";
}
但据我所知,您不应该修改字段的值,因为库无法理解将数据反序列化的对象。