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
相关产品推荐
相关产品推荐

