R2dbc枚举类型支持(mssql、oracle、mariadb等)



使用R2dbc-postgresql,我们可以轻松地将java枚举类型与数据库枚举类型映射:

@Bean
public ConnectionFactory pgConnectionFactory() {
return new PostgresqlConnectionFactory(
PostgresqlConnectionConfiguration.builder()
.host("localhost")
.database("test")
.username("user")
.password("password")
.codecRegistrar(EnumCodec.builder().withEnum("status", Status.class).build())
.build()
);
}

现在我想把这个映射应用到:mariadb、mssql、oracle等等。这些dbms具有相同的功能吗?

MariaDB支持与MySQL相同的枚举类型,这只是VARCHAR列上的一个花哨的检查约束,而不是实际的枚举类型。

如果您想在所有这些方言中实现数据库不可知的枚举类型,我建议您使用CHECK约束而不是枚举。

请注意,r2dbc-postgresql驱动程序的未来版本有望支持开箱即用的枚举类型:https://github.com/pgjdbc/r2dbc-postgresql/issues/429

最新更新