我有一个基类,它是一个 Riak 实体,以及一些扩展 BaseEntity 的派生类。BaseEntity 有一个名为 Identifier 的字段,它被注释为 @RiakKey。
但显然这还不够。看来我必须有标识符字段,每个派生类中都有 @RuiakKey 注释,否则我会得到这个异常:
com.basho.riak.client.convert.NoKeySpecifedException 在 com.att.cso.omss.datastore.riak.controllers.RiakBaseController.isEntityExist 的 com.basho.riak.client.bucket.DefaultBucket.fetch(DefaultBucket.java:535) (RiakBaseController.java:130) 在 com.att.cso.omss.datastore.riak.controllers.RiakBaseController.createEntity(RiakBaseController.java:94) 在 com.att.cso.omss.datastore.riak.controllers.RiakBaseController.createServiceProvider (RiakBaseController.java:234) 在 com.att.cso.omss.datastore.riak.App.serviceProviderTests(App.java:62) 在 com.att.cso.omss.datastore.riak.App.main(App.java :38)
所以,我当前的实现看起来像这样(标识符字段的重复):
公共类 BaseEntity{
@RiakKey @JsonProperty("Id") 受保护的字符串标识符;
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
. . .
公共类服务扩展 BaseEntity{
@RiakKey
@JsonProperty("Id")
protected String identifier;
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
有没有办法避免这种重复?