2

我的 PostgreSQL 包含一个像

create type my_type as enum('VAL1', 'VAL2')

在 Spring Boot 应用程序中,它表示为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

4

1 回答 1

1

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

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

例子:

client.exectute("select type::text from table where type = :type::my_type")
于 2020-05-28T13:25:21.183 回答