postgresql - 在 Spring Data R2DBC 中覆盖数组(列表)类型转换

标签 postgresql r2dbc spring-data-r2dbc

我使用 Postgres 作为我的数据源,我已经为一个包含我的自定义对象列表的属性创建了一个自定义的 Spring 转换器:

@Slf4j
@WritingConverter
@AllArgsConstructor
public class CustomObjectListToStringConverter implements Converter<List<CustomObject>, String> {

    @Override
    public String convert(@Nonnull List<CustomObject> source) {
        try {
            return objectMapper.writeValueAsString(source);
        } catch (JsonProcessingException e) {
            log.error("Error occurred while serializing list of CustomObject to JSON.", e);
        }
        return "[]";
    }

}

转换进行得很顺利,但是在 PostgresArrayColumns 类的 getArrayType 方法中引发了 IllegalArgumentException,因为我的自定义类型不是简单类型。

有没有办法绕过某些属性的这个守卫?

最佳答案

目前,没有覆盖可能,因为 DatabaseClient 将集合类型的值视为 Postgres 数组字段的值。请在 https://github.com/spring-projects/spring-data-r2dbc/ 提交工单解决问题。

关于postgresql - 在 Spring Data R2DBC 中覆盖数组(列表)类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56580662/

相关文章:

postgresql - 为什么 hibernate 在删除时生成交叉连接?

sql - 为什么我仍然无法访问 PSQL 中的任何数据库函数?

在一条语句中而不是两条语句中进行 SQL 更新

ruby - CruiseControl.rb 与 Postgres 一起抛出异常

spring-data - 响应式应用程序的 ORM 框架

cockroachdb - 无法从 Spring Data R2DBC 驱动程序连接到 CockroachCloud Free(测试版)集群

java - R2dbc 无法使用 tcp 处理 h2 数据库

spring-data - 如何在测试中用 Spring 数据 r2dbc 替换 @Sql?

spring-boot - SpringBoot @Autowire 在@Repository 中不起作用

java - 如何在 Spring 数据 r2dbc 中替换 @PrePersist