在Scala中使用Riak Java客户端。当我去存储一个对象时,我使用以下方法,除了当我转到NullPointerException
时抛出addLink
:
def store(clientId: String, userId: String, o: PointBalance) = {
bucket.store(o).withRetrier(DB.retrier).execute()
val tagThis = bucket.fetch(formatKey(clientId, userId)).r(2).withRetrier(DB.retrier).execute()
tagThis.addLink(new RiakLink("users", userId, "owner"))
bucket.store(tagThis).withRetrier(DB.retrier).execute()
}
我试图在没有POJO反序列化的情况下检索基本的IRiakObject
,因此它会公开addLink
方法,但出现,除非它是,否则Riak不会返回对象那个POJO班。
如何在基本POJO中添加RiakLink
?感谢。
由于某种原因,上面的提取是检索空对象。不知道为什么会这样。我的普通fetch
方法和方法之间的唯一区别是我反序列化为POJO。见这里:
正常:bucket.fetch(formatKey(clientId, userId), classOf[PointBalance]).r(2).withConverter(converter).withRetrier(DB.retrier).execute()
获取IRiakObject:bucket.fetch(formatKey(clientId, userId)).r(2).withRetrier(DB.retrier).execute()
为什么会这样?