枚举类型的春季R2DBC查询

时间:2020-05-27 12:13:26

标签: spring-data spring-data-r2dbc r2dbc-postgresql

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

1 个答案:

答案 0 :(得分:1)

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

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

示例:

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