如何在反应式 PostgreSQL、Quarkus 中查询包含另一个对象的对象

发布于 2025-01-14 16:24:34 字数 1013 浏览 4 评论 0原文

我有一个类 RetailPlace,其数据放置在 Retail_place 表中,还有 RetailPlaceAddress 类,其数据放置在 Retail_place_address 表中。通过retail_place.id = Retail_place_address.retail_place_id连接retail_place和retail_place_address。我需要创建一个返回带有 RetailPlaceAddress 的 RetailPlace 对象的方法。 我尝试先获取 RetailPlaceAddress,然后将其放入接下来获取的 RetailPlace 对象中,但它不起作用:

    public static Uni<RetailPlace> get(PgPool client, long id){

    return client.preparedQuery("select * from retail_place_address where retail_place_id = $1")
            .execute().onItem().transform(RowSet::iterator)
            .onItem().transform(iterator -> iterator.hasNext() ? RetailPlaceAddress.from(iterator.next()) : null).onItem()
            .transform(retailPlaceAddress -> new RetailPlace(client.preparedQuery("select * from retail_place where id = $1").execute()
                    .onItem().transform(pgRowSet -> new RetailPlace(pgRowSet.iterator().next().getLong("id"), pgRowSet.iterator().next().getString("title"), retailPlaceAddress))));
}

I have a class RetailPlace, whose data is placed in retail_place table, and RetailPlaceAddress, whose data is in retail_place_address table. retail_place and retail_place_address connected via retail_place.id = retail_place_address.retail_place_id. I need to create a method which returns RetailPlace object with RetailPlaceAddress in it.
I tried to get RetailPlaceAddress first, and then to place it in RetailPlace object which I get next, but it didn't worked:

    public static Uni<RetailPlace> get(PgPool client, long id){

    return client.preparedQuery("select * from retail_place_address where retail_place_id = $1")
            .execute().onItem().transform(RowSet::iterator)
            .onItem().transform(iterator -> iterator.hasNext() ? RetailPlaceAddress.from(iterator.next()) : null).onItem()
            .transform(retailPlaceAddress -> new RetailPlace(client.preparedQuery("select * from retail_place where id = $1").execute()
                    .onItem().transform(pgRowSet -> new RetailPlace(pgRowSet.iterator().next().getLong("id"), pgRowSet.iterator().next().getString("title"), retailPlaceAddress))));
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文