当前位置: 首页 > 知识库问答 >
问题:

不可能在Quarkus/穆特尼SqlClient中使用表别名?

邵弘致
2023-03-14

我是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<代码>即时通讯使用Quarkus 1.13.0。quarkus反应式mysql客户端依赖项的最终版本

共有1个答案

司寇灵均
2023-03-14

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

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 = ?"
 类似资料:
  • 问题内容: 我是Hive,MapReduce和Hadoop的新手。我正在使用Putty连接到配置单元表并访问表中的记录。因此,我要做的是- 打开Putty并输入主机名-然后单击。然后我输入了用户名和密码,然后输入了一些命令来访问Hive sql。以下是我的工作清单 所以我的问题是 还有其他方法可以在任何Sql客户端(例如Sql Developer或Squirel SQL Client)中执行相同的

  • 我正在使用Mochito,无法返回使用MarshallSendReceive进行的api调用的模拟响应。 以下是服务api调用(其中serviceRequest的类型为ValidateRequest,HeaderComposingCallback实现WebServiceMessageCallback) 这里是JUnit测试中的模拟,validateResponse是创建的对象,填充了值,但在运行下

  • 我只是在用Quarkus做实验,我在ResourceLoader上遇到了一个问题。具体来说,当我尝试使用ResourceLoader inject时,maven的干净安装出错了 这是maven的输出: 您知道如何在Quarkus中使用ResourceLoader吗,或者是否有一种等效的方法来读取类路径资源中的文件? 这是我目前的情况: 我已经在project resources文件夹中找到了这些文

  • 我是新来的单元测试,我一直致力于这个教程,我在互联网上找到: http://blog.fedecarg.com/2008/12/27/testing-zend-framework-controllers/ 我的问题是我根本无法执行教程中显示的测试! C :\wamp\www\portailmg\dev\test 从C:\wamp\www\portailmg\dev\tests\phpunit.xm

  • imagemagick转换命令有问题。该命令与标准结构的normal.svg配合使用非常理想。 但是如果您使用 区域和 引用,它就不起作用了。 magick convert test.svg-调整50%test.png的大小 > 适用于SVG1 在带有xlink:href的SVG2上不起作用 <?xml version=“1.0”encoding=“UTF-8”?> <!doctype svg P