在 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()
}
我试图在IRiakObject
没有 POJO 反序列化的情况下检索一个基本的,因此它会公开该addLink
方法,但似乎Riak 不会返回一个对象,除非它属于那个 POJO 类。
如何将 a 添加RiakLink
到基本 POJO?谢谢。
更新
出于某种原因,上面的 fetch 正在检索空对象。不知道为什么会这样。我的普通方法和这里的方法之间的唯一区别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()
任何想法为什么会这样?