You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus Mutiny反应式SqlClient无法通过表别名读取列值?

我是Quarkus新手,非常期待在后续项目中使用它。我的首个操作是配置MySQL连接,并按照官方反应式SQL客户端指南所示以反应式方式执行查询。我不想使用JPA/Hibernate,因此没有采用Panache方案。

但我发现,在映射行集时无法通过表别名读取列值。

val sql = "SELECT u.id, u.name, u.created_at, u.edited_at FROM user AS u WHERE id = ?"
val params = Tuple.of(request.id)
    
return client.preparedQuery(sql).execute(params)
             .onItem().transform { rowSet ->
                 rowSet.firstOrNull().let { row ->
                    row?.let {
                         User.fromRow(it)
                     }
                   }
               }

...

return User(
    id = UUID.fromString(row.getString("u.id")), // 无法正常工作!我只能通过`id`读取值,无法使用`u.id` :(
    name = row.getString("u.name"),
    createdAt = row.getLocalDateTime("u.created_at").toInstant(ZoneOffset.UTC),
    editedAt = row.getLocalDateTime("u.edited_at").toInstant(ZoneOffset.UTC)
)

这一问题十分影响开发,因为当列名存在歧义(例如id是非常常见的列名)时,将无法实现包含复杂关联的查询。

请问是否存在方法可以修改这一行为,还是说这属于缺陷?当前使用的环境为Quarkus 1.13.0.Final,引入了quarkus-reactive-mysql-client依赖。

内容的提问来源于stack exchange,提问作者Ahmet K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 21:15:04