anchor.diff:  import javax.ws.rs.core.Response;
   import javax.ws.rs.core.Response.ResponseBuilder;
   import javax.ws.rs.core.Response.Status;
  -import java.net.URI;
  +
  +import io.smallrye.mutiny.Multi;
  +import io.smallrye.mutiny.Uni;
  +import io.vertx.mutiny.pgclient.PgPool;
   
   @Path("fruits")
  +@Produces(MediaType.APPLICATION_JSON)
  +@Consumes(MediaType.APPLICATION_JSON)
   public class FruitResource {
   
  -    @Inject
  -    @ConfigProperty(name = "myapp.schema.create", defaultValue = "true")
  -    boolean schemaCreate;
  -
  -    @Inject
  -    PgPool client;
  -
  -    @PostConstruct
  -    void config() {
  -        if (schemaCreate) {
  -            initdb();
  -        }
  +    private final PgPool client;
  +
  +    public FruitResource(PgPool client) {
  +        this.client = client;
       }
   
       private void initdb() {
  
positive.code: 
      @PUT
      @Path("{id}")
      public Uni<Response> update(@PathParam Long id, Fruit fruit) {
          return fruit.update(client)
                  .onItem().transform(updated -> updated ? Status.OK : Status.NOT_FOUND)
                  .onItem().transform(status -> Response.status(status).build());
  
negative.code: Notice that the reactive PostgreSQL client already provides `Uni` and `Multi` instances.
  So you only transform the results from the database into _business-friendly_ objects.
  
  For the purposes of initializing the database when the application starts, we will create a class named `DBInit` with the following content:
  
  [source, java]
  ----
  package org.acme.reactive.crud;
  
  import io.quarkus.runtime.StartupEvent;
  import io.vertx.mutiny.pgclient.PgPool;
  import org.eclipse.microprofile.config.inject.ConfigProperty;
  
  import javax.enterprise.context.ApplicationScoped;
  import javax.enterprise.event.Observes;
  
  @ApplicationScoped
  public class DBInit {
  
      private final PgPool client;
      private final boolean schemaCreate;
  
      public DBInit(PgPool client, @ConfigProperty(name = "myapp.schema.create", defaultValue = "true") boolean schemaCreate) {
          this.client = client;
          this.schemaCreate = schemaCreate;
      }
  
      void onStart(@Observes StartupEvent ev) {
          if (schemaCreate) {
              initdb();
          }
      }
  
      private void initdb() {
          client.query("DROP TABLE IF EXISTS fruits").execute()
                  .flatMap(r -> client.query("CREATE TABLE fruits (id SERIAL PRIMARY KEY, name TEXT NOT NULL)").execute())
                  .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Kiwi')").execute())
                  .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Durian')").execute())
                  .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Pomelo')").execute())
                  .flatMap(r -> client.query("INSERT INTO fruits (name) VALUES ('Lychee')").execute())
                  .await().indefinitely();
      }
  }
  ----
  
  Then, let's use this `Fruit` class in the `FruitResource`.
  Edit the `FruitResource` class to match the following content:
  
  