当前位置: 首页 > 知识库问答 >
问题:

Quarkus兵变: neo4j类型不匹配编译处理

赏光霁
2023-03-14

这是我的代码:

@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());
        });
    }

}

我收到两条编译信息:

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

我不太清楚,因为记录。获取(“名称”)。asString返回一个字符串。。。

有什么想法吗?

共有1个答案

公羊俊德
2023-03-14

终结器函数必须返回一个Uni

尝试以下方法:

@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());
    });
}

 类似资料:
  • 问题内容: 我在项目中创建了一个工厂类,从理论上讲,该类允许我为任何(受支持的)给定类型创建管理器。与管理器进行交互使我可以更改给定类型的某些属性。我面临的问题是,当我尝试为泛型类型创建管理器时,编译器粉碎了我的希望和梦想。 以下代码是我正在使用的简化版本。我尝试创建“ test3Manager”的行将不会编译,并且我试图了解为什么会这样。它下面的线显示了一种“解决方法”,我正试图避免这种情况。

  • 与有界通配符相关的编译器错误 应兼容的不兼容通配符类型

  • 与有界通配符相关的编译器错误 Java:通配符类型不匹配导致编译错误

  • 应该如何声明“GenericBo Bo”实例?正确的代码是什么?

  • 我在这里复制代码;https://developer.android.com/codelabs/kotlin-android-training-view-model#5 但我从DataBindingUtil中得到了一个类型不匹配。充气方法。正在返回ViewDataBinding!,当需要FragmentPlayBinding时。 我https://github.com/google-develop

  • 问题内容: 编写内部API时遇到以下错误。我正在尝试以以下方式读取值(SQL Server 2012): 现在,虽然看起来有些奇怪,但我以这种方式阅读的原因是因为它是我编写的包装程序的一部分,我们使用它来加快sql的读写速度。它接受一个匿名对象,并根据属性名称或属性名称将所有sql值读入其中。 这适用于除以外的所有内容。我进行了类型比较,它也同样失败,因此很hacky,我什至无法检查该列是否为类型