r2dbc配置枚举转换器

简介: r2dbc配置枚举转换器


你如果愿意做哲学家,尽管做好了,但是你在你的全部哲学思维中,仍然要做一个人。——休谟

首先配置Converter

import jakarta.annotation.Nullable;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.WritingConverter;
import org.springframework.stereotype.Component;
/**
 * EnumToIntConverter
 *
 * @author [email protected]
 */
@Component
@WritingConverter
public class AgoraNotifyTypeEnumToIntConverter implements Converter<AgoraNotifyTypeEnum, Integer> {
    @Override
    public Integer convert(@Nullable AgoraNotifyTypeEnum source) {
        if (source == null) {
            return null;
        }
        return source.getValue();
    }
}

以及

import cn.hutool.core.util.EnumUtil;
import jakarta.annotation.Nullable;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.ReadingConverter;
import org.springframework.stereotype.Component;
/**
 * IntToIEnumConverter
 *
 * @author [email protected]
 */
@Component
@ReadingConverter
public class IntToAgoraNotifyTypeEnumConverter implements Converter<Integer, AgoraNotifyTypeEnum> {
    @Override
    public AgoraNotifyTypeEnum convert(@Nullable Integer source) {
        if (source == null) {
            return null;
        }
        return EnumUtil.getBy(AgoraNotifyTypeEnum::getValue, source);
    }
}

然后还需要配置

import io.r2dbc.spi.ConnectionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.CustomConversions;
import org.springframework.data.r2dbc.convert.R2dbcCustomConversions;
import org.springframework.r2dbc.connection.R2dbcTransactionManager;
import org.springframework.transaction.ReactiveTransactionManager;
import org.springframework.transaction.reactive.TransactionalOperator;
import java.util.List;
/**
 * R2dbcConfig
 *
 * @author VampireAchao<achao @ hutool.cn>
 * @since 2023/10/27
 */
@Configuration
public class R2dbcConfig {
    @Bean
    public R2dbcCustomConversions r2dbcCustomConversions(List<Converter<?, ?>> converters) {
        return new R2dbcCustomConversions(CustomConversions.StoreConversions.NONE, converters);
    }
}


相关文章
|
9月前
|
机器学习/深度学习 弹性计算 搜索推荐
QwQ-32B一键部署,真正的0代码,0脚本,0门槛
阿里云发布的QwQ-32B模型通过强化学习显著提升了推理能力,核心指标达到DeepSeek-R1满血版水平。用户可通过阿里云系统运维管理(OOS)一键部署OpenWebUI+Ollama方案,轻松将QwQ-32B模型部署到ECS,或连接阿里云百炼的在线模型。整个过程无需编写代码,全部在控制台完成,适合新手操作。
1690 176
QwQ-32B一键部署,真正的0代码,0脚本,0门槛
|
移动开发 JavaScript 前端开发
Taro——安装和使用
Taro——安装和使用
695 0
|
机器学习/深度学习 数据可视化 Python
Scikit-Learn 中级教程——学习曲线
Scikit-Learn 中级教程——学习曲线
1061 3
|
存储 Java 数据库
如何在Spring Boot中集成Firebase实现移动应用后端
如何在Spring Boot中集成Firebase实现移动应用后端
|
机器学习/深度学习 XML 前端开发
【小家Spring】聊聊Spring中的数据转换:Converter、ConversionService、TypeConverter、PropertyEditor(下)
【小家Spring】聊聊Spring中的数据转换:Converter、ConversionService、TypeConverter、PropertyEditor(下)
【小家Spring】聊聊Spring中的数据转换:Converter、ConversionService、TypeConverter、PropertyEditor(下)
|
存储 Java Linux
Linux安装HBase的详细教程及常用方法
Linux安装HBase的详细教程及常用方法
1511 1
|
人工智能 自然语言处理 安全
《百炼成金-大金融模型新篇章》––13.Al原生应用实施路径
百炼必定成金,新质生产力会催生新质劳动力,谨以此文抛砖引玉,希望与业内的各位朋友一同探讨如何积极拥抱并运用大模型技术,以应对和驾驭不断变化的市场环境,实现科技金融持续稳定的提质增效和创新发展,携手开启金融大模型未来新篇章。
350 0
|
应用服务中间件 Shell nginx
制作docker镜像的dockerfile编写规则汇总
制作docker镜像的dockerfile编写规则汇总
371 0
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
1509 0
|
SQL
SQL语句两个字段或多个字段同时order by 排序
SQL语句两个字段或多个字段同时order by 排序
2248 0