更新查询后获取结果

Get result after an update query

我正在进行以下查询,该查询有效并按预期将信息更新到数据库中。但是有没有办法可以从 Single < UpdateResult > 获得输出?

public Single<UpdateResult> update(UpdateEventRequest request) {
    return client.rxUpdateWithParams(
            "UPDATE mydb.sample SET sta_cd=?, some_ts=current_timestamp WHERE id=? RETURNING sta_cd",
            new JsonArray(Arrays.asList(sta_cd, id)));
}

我希望从下面的 e 变量中得到值“10012”。但这似乎不可能。尝试使用 map、flatmap 并只查看 e 中可用的选项。 e 中唯一的结果数据是 'keys',它是一个空列表和 'updated',它是一个整数值 1。我的数据库是 postgres 并且期望来自 Single < UpdateResult > 的结果,因为我正在使用 'RETURNING' 在查询中。

我对一个有效的插入操作做了同样的事情,但那是通过方法 rxQueryWithParams() 而 returns 一个 Single < ResultSet > 代替。因此想知道这是否可能。一直在查看文档,也许这是不可能的,因为更新查询是 returning 一个 Single < UpdateResult > 。如果可能,请寻求建议,以 return 来自更新查询的数据或解决此问题的方法。请指教。谢谢

    Single<UpdateResult> result = someClass.update("10012", "78632");

    result.subscribe(
            e -> {
                System.out.println("success: " + e); // I land here as expected
            },
            error -> {
                System.out.println("error: " + error);
            }
    );

因为您在这些命令中使用 RETURNING,请将这些 INSERTUPDATE 命令视为查询。

运行 他们通过 rxQueryWithParams() 以便您可以检索结果。

当您 运行 rxUpdateWithParams() 时,UpdateResult 仅包含受影响的行数。