2

在 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()

任何想法为什么会这样?

4

0 回答 0