注册

r2dbc项目代码时间采取的是instant类型。转化为数据库时间戳报错。目前达梦的转化器参数无效,虽然可以设置,但是jar包中方法写了直接创建默认转化的代码

逆光骑士 2023/06/21 1102 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8
【操作系统】:linux
【CPU】:
【问题描述】*:r2dbc项目代码时间采取的是instant类型。转化为数据库时间戳报错
这是我们的创建数据源的代码。
@Bean("reactionConnectionFactory")
public ConnectionFactory connectionFactory() {
R2dbcProperties properties = r2dbcProperties();
//todo 数据源这里不通过url获取 需要用参数获取 才能配置转化器

    ConnectionFactoryOptions parse = ConnectionFactoryOptions.parse(properties.getUrl());
    DefaultConverts defaultConverts = new DefaultConverts();
    EasemobConvert easemobConvert = new EasemobConvert();
    // defaultConverts.add(new InstantConvert());
    ConnectionFactoryOptions build =
            parse.mutate().option(DmConnectionFactoryProvider.CONVERTS, easemobConvert)
                    .build();
    //  ConnectionFactory connectionFactory = ConnectionFactories.get(properties.getUrl());
    ConnectionFactory connectionFactory = ConnectionFactories.find(build);
    ConnectionPoolConfiguration configuration = ConnectionPoolConfiguration.builder(connectionFactory)
            .maxIdleTime(properties.getPool().getMaxIdleTime())
            .maxLifeTime(properties.getPool().getMaxLifeTime())
            .initialSize(properties.getPool().getInitialSize())
            .maxSize(properties.getPool().getMaxSize())
            .acquireRetry(properties.getPool().getAcquireRetry())
            .build();
    return new ConnectionPool(configuration);
}

但是目前达梦的spi的
image.png
但是目前这个类里面并没有采用转化器参数。
image.png
导致时间类型不兼容,并且目前的代码。针对一个时间戳类型。如何转化为date 以及java.time.Instant 两种类型。是否应该实现双层map <jdbcType, <javaClass, Convert>> 这种结构来缓存

回答 0
暂无回答
扫一扫
联系客服