public void saveBooks()

in cloud-spanner-r2dbc-samples/cloud-spanner-r2dbc-sample/src/main/java/com/example/BookExampleApp.java [84:114]


  public void saveBooks() {
    Statement statement = this.connection.createStatement(
        "INSERT BOOKS "
            + "(ID, TITLE)"
            + " VALUES "
            + "(@id, @title)")
        .bind("id", "book1")
        .bind("title", "Book One")
        .add()
        .bind("id", "book2")
        .bind("title", "Book Two");


    Statement statement2 = this.connection.createStatement(
            "INSERT BOOKS "
                    + "(ID, TITLE, EXTRADETAILS)"
                    + " VALUES "
                    + "(@id, @title, @extradetails)")
            .bind("id", "book3")
            .bind("title", "Book Three")
            .bind("extradetails", new JsonWrapper("{\"rating\":9,\"series\":true}"));

    Flux.concat(
            this.connection.beginTransaction(),
            Flux.concat(statement.execute(), statement2.execute())
                .flatMapSequential(r -> Mono.from(r.getRowsUpdated()))
                .then(),
            this.connection.commitTransaction())
        .doOnComplete(() -> System.out.println("Insert books transaction committed."))
        .blockLast();
  }