Spring DatabaseClient 提取方法 returns 不同列名的不同顺序的列值

Spring DatabaseClient fetch method returns columns values in different order with different column names

当使用 returns Map 的数据库客户端和获取方法时,键似乎乱序了。我是不是做错了什么?

获取地图的代码是

val result = databaseClient
                .sql(SELECT_ISSUER_METADATA)
                .bind(0, id)
                .fetch()
                .awaitOne()

SELECT_ISSUER_METADATA 是 SELECT * FROM ISSUER_METADATA WHERE issuer = ? 当我 运行 示例时,table 包含这些列和值:

如您所见,issuer 的值为 soludcommunity.net,而 authorization_endpoint 的值为 soludcommunity.net/authorize.

但是当我打印从 fetch 获取的地图时,我得到了这个结果:

{authorization_endpoint=https://solidcommunity.net, issuer=https://solidcommunity.net/authorize, jwk_uri=https://solidcommunity.net/jwks, registration_endpoint=https://solidcommunity.net/token, token_endpoint=https://solidcommunity.net/register}

我是不是遗漏了一些简单的东西(我感觉是这样的)?我不知道如何解决这个问题。

我正在使用 MySql R2dbc 驱动程序。

这是由于 bug in the r2dbc-mysql driver, which has been fixed but not yet part of a stable release. So for now, the only option seems to be to use the build snapshot,对于 maven 来说看起来像这样:

    <properties>
        <r2dbc-mysql.version>0.8.3.BUILD-SNAPSHOT</r2dbc-mysql.version>
    </properties>

    <repositories>
        <repository>
            <id>sonatype-snapshots</id>
            <name>SonaType Snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>dev.miku</groupId>
            <artifactId>r2dbc-mysql</artifactId>
            <version>${r2dbc-mysql.version}</version>
        </dependency>
    <dependencies>