【发布时间】:2020-07-22 10:14:21
【问题描述】:
我尝试使用最新版本的 r2dbc-postgresql (0.8.4) 中的 EnumCodec 失败,我想知道您是否可以帮助我。
我也使用 spring-data-r2dbc 1.1.1 版。
我从 GitHub 中获取了确切的示例,并在我的 Postgres 中创建了一个枚举类型“my_enum”, 和一个表“sample_table”,其中包含“名称”(文本)和“值”(my_enum)。
然后我按照例子做了:
SQL:
CREATE TYPE my_enum AS ENUM ('FIRST', 'SECOND');
Java 模型:
enum MyEnumType {
FIRST, SECOND;
}
编解码器注册:
PostgresqlConnectionConfiguration.builder()
.codecRegistrar(EnumCodec.builder().withEnum("my_enum", MyEnumType.class).build());
我使用 DatabaseClient 来与数据库通信。 我尝试使用 2 种方法插入:
databaseClient.insert().into(SampleTable.class)
.using(sampleTable).fetch().rowsUpdated();
或:
databaseClient.insert().into("sample_table")
.value("name", sampleTable.getName())
.value("value", sampleTable.getValue())
.then();
SampleTable 在哪里:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table("sample_table")
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SampleTable implements Serializable {
private String name;
@Column("value")
@JsonProperty("value")
private MyEnumType value;
}
但我同时使用这两种方法都会遇到同样的错误:
列“值”是 my_enum 类型,但表达式是字符变化类型
您能否帮助我理解我做错了什么,或者向我推荐一些工作示例? 感谢您的帮助!
【问题讨论】:
标签: spring postgresql enums spring-data-r2dbc r2dbc