Quarkus vzpoura: neo4j neshoda typu kompilace manipulaci

0

Otázka

Tohle je můj kód:

@Path("/hello")
@AllArgsConstructor
public class GreetingResource {

    private final Driver driver;

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public Uni<String> hello() {
        return Multi.createFrom().resource(
            driver::rxSession,
            session -> session.readTransaction(tx -> {
                RxResult result = tx.run("MATCH (f:Fruit) RETURN f.name as name ORDER BY f.name");
                return Multi.createFrom().publisher(result.records()).map(record -> record.get("name").asString());
            })
        ).withFinalizer(session -> {
            return Multi.createFrom().publisher(session.close());
        });
    }

}

Začínám ty dvě kompilace zpráv:

Type mismatch: cannot convert from Multi<Object> to Uni<String>
Type mismatch: cannot convert from Multi<Object> to Uni<Void>

Nemám úplně postavu od record.get("name").asString vrátí mi String...

Nějaké nápady?

mutiny neo4j quarkus
2021-11-23 22:29:56
1

Nejlepší odpověď

0

Je finalizer funkce musí vrátit Uni<Void>. V kódu, vrátí Publisher<Object>. Také, vaše metoda je bude vracet Multi a ne Uni.

Zkuste následující postup:

@GET
@Produces(MediaType.TEXT_PLAIN)
public Multi<String> hello() {
    return Multi.createFrom().resource(
            driver::rxSession,
            session -> session.readTransaction(tx -> {
                RxResult result = tx.run(
                  "MATCH (f:Fruit) RETURN f.name as name ORDER BY f.name");
                return Multi.createFrom().publisher(result.records())
                   .map(record -> record.get("name").asString());
            })
    ).withFinalizer(session -> {
        return Uni.createFrom().publisher(session.close());
    });
}
2021-11-24 09:39:35

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................