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")
我的 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")