Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Quarkus/Mutiny SqlClient中使用表别名?_Java_Kotlin_Quarkus_Mutiny - Fatal编程技术网

Java 无法在Quarkus/Mutiny SqlClient中使用表别名?

Java 无法在Quarkus/Mutiny SqlClient中使用表别名?,java,kotlin,quarkus,mutiny,Java,Kotlin,Quarkus,Mutiny,我是Quarkus的新手,在我的下一个项目中使用它真的很兴奋。我的第一步是配置mysql连接,并以反应式方式对其执行查询,如图所示。我不想使用JPA/Hibernate,所以我没有采用华丽的方式 但我发现在映射行集时不能使用表别名 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)

我是Quarkus的新手,在我的下一个项目中使用它真的很兴奋。我的第一步是配置mysql连接,并以反应式方式对其执行查询,如图所示。我不想使用JPA/Hibernate,所以我没有采用华丽的方式

但我发现在映射行集时不能使用表别名

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")), //Not working !! I only can parse from `id` not from `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是一个非常常见的列名),不可能进行包含复杂联接的查询

有没有办法改变这种行为,还是只是一个bug?
Im使用Quarkus 1.13.0.Final和Quarkus反应式mysql客户端依赖项

表别名可以工作,但如果您想在别名中有一个点(
),则必须将其转义:

val sql = "SELECT u.id as `u.id`," +
                " u.name as `u.name`," +
                " u.created_at as `u.created_at`," +
                " u.edited_at as `u.edited_at`" + 
         " FROM user AS u WHERE id = ?"

非常感谢。效果很好:)