spring R2DBC 枚举类型查询

spring R2DBC query by enum type

我的 PostgreSQL 包含一个像

这样的枚举
create type my_type as enum('VAL1', 'VAL2')

在Spring boot app中,表示为MyType.class enum

我正在尝试 运行 使用 DatabasClient

的简单查询
client.exectute("select * from table where type = :type")...

作为错误,我得到:

ceptionFactory$PostgresqlBadGrammarException: operator does not exist: type = character varying

将类型转换为 my_type 无效(对于 CAST 和 ::)

我已经为 MyType.class 注册了一个特定的编解码器,该编解码器有效 - 无条件查询适用于相关的 @ReadingConverter

Spring Data R2DBC 和 R2DBC Postgres 都不能将您的枚举类型映射到 Postgres 枚举类型。

如果在 SQL 语句中检索时正确地转换绑定 value/column 值,您仍然可以使用表示为字符串的 Postgres 枚举类型。

示例:

client.exectute("select type::text from table where type = :type::my_type")