【发布时间】:2014-06-27 10:06:38
【问题描述】:
我在 riak 上有一个存储桶,我以这种方式存储简单的 Timestamp -> String 值:
val riakClient = RiakFactory.newClient(myHttpClusterConfig)
val myBucket = riakClient.fetchBucket(name).execute
myBucket.store(timestamp.toString, value).withoutFetch().w(1).execute
我现在需要做的是在键上添加索引。我尝试以这种方式定义 Java POJO:
public class MyWrapper {
@RiakIndex(name="timestamp_index")
@RiakKey
public String timestamp;
public String value;
public MyWrapper(String timestamp, String value) {
this.timestamp = timestamp;
this.value = value;
}
}
然后运行
myBucket.store(new MyWrapper(timestamp.toString, value)).withoutFetch().w(1).execute
这种方法的问题在于,在 riak 中,实际值存储为 json 对象:
{"value":"myvalue"}
而我只需要存储myvalue 字符串。有什么办法可以做到这一点?执行store时看不到任何index(name)方法,也看不到像@RiakKey这样的注解,除了值。
【问题讨论】: