我是 Quarkus 的新手,真的很高兴在我的下一个项目中使用它。我的第一步是配置 mysql 连接并以反应方式对其执行查询,如此处所示。我不想使用 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")), //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 是一个非常常见的列名),将无法进行包含复杂连接的查询。
有没有办法改变这种行为,或者它只是一个错误?
Im using Quarkus 1.13.0.Final with the quarkus-reactive-mysql-client dependency