Estoy haciendo la siguiente consulta que funciona y actualiza la información en la base de datos como se esperaba. Pero, ¿hay alguna manera de obtener una salida de 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))); }De la siguiente variable e, esperaba obtener el valor "10012". Pero no parece posible. Probé con mapa, mapa plano y solo vea las opciones disponibles en e. Los únicos datos de resultado en e son 'claves', que es una lista vacía y 'actualizado', que es un valor entero de 1. Mi base de datos es postgres y esperaba resultados de Single < UpdateResult > ya que estoy usando 'RETORNO' en la consulta .
He hecho lo mismo para una operación de inserción que funciona, pero eso es a través del método rxQueryWithParams() y que devuelve un Single < ResultSet > en su lugar. Por lo tanto, se pregunta si esto es posible. He estado echando un vistazo a los documentos y tal vez esto no sea posible ya que una consulta de actualización está devolviendo un Single < UpdateResult > . Buscando consejos si esto es posible, para devolver datos de una consulta de actualización o una forma de evitar esto. Por favor aconséjame. Gracias.
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); } );Debido a que está utilizando RETURNING en estos comandos, trate estos comandos INSERT y UPDATE como consultas.
Ejecútelos a través rxQueryWithParams() para que pueda recuperar los resultados.
Cuando ejecuta rxUpdateWithParams() , UpdateResult contiene solo la cantidad de filas afectadas.