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 achao@apache.org
 */
@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 achao@apache.org
 */
@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);
    }
}


相关文章
|
3月前
|
数据库
掌握数据模型的精细控制:深入探索Entity Framework Core中的自定义类型转换器与值转换器
【8月更文挑战第31天】在软件开发中,数据模型常需在数据库类型与 .NET 类型之间进行映射。尽管 Entity Framework Core 提供了默认的类型映射,但在某些情况下,我们可能需要自定义映射规则。这时,类型转换器和值转换器就派上了用场。本文将介绍如何在 EF Core 中使用自定义类型转换器和值转换器,以实现更灵活的数据映射。
24 0
|
5月前
SpringMVC自定义类型转换器并开启
SpringMVC自定义类型转换器并开启
|
11月前
|
Java
mp方法注入支持typeHandler
mp方法注入支持typeHandler
60 0
|
11月前
stream-core实现枚举校验
stream-core实现枚举校验
47 0
|
11月前
|
Java Spring
Converter集合转换
Converter集合转换
57 0
|
编解码
D/A转换器的转换速度的介绍
D/A转换器的转换速度 引言: 数字到模拟(D/A)转换器是一种常见的电子设备,用于将数字信号转换为模拟信号。在许多应用中,D/A转换器的转换速度是一个重要的参数。本文将介绍D/A转换器的转换速度以及影响转换速度的因素。 一、什么是D/A转换器的转换速度 D/A转换器的转换速度是指从输入数字信号到输出模拟信号的转换时间。它通常以每秒转换的次数(即转换速率)来表示,单位为赫兹(Hz)。转换速度越高,D/A转换器能够更快地将数字信号转换为模拟信号。 二、影响D/A转换器转换速度的因素 1. D/A转换器的类型:不同类型的D/A转换器具有不同的转换速度。例如,串行式D/A转换器比并行式D/A转
286 0
|
数据库
通用mapper(tk.mybatis) 使用Enum枚举类型字段的注意事项
通用mapper(tk.mybatis) 使用Enum枚举类型字段的注意事项
288 0
|
Java Spring
springmvc自定义类型转换器解决Date类型转换
springmvc自定义类型转换器解决Date类型转换
|
API 数据库
Entity Framework复杂类型属性映射
Entity Framework复杂类型属性映射
147 0
Entity Framework复杂类型属性映射
SpringMVC - 数据绑定(自定义数据转换器:PropertyEditor、Formatter、Converter)(三)
SpringMVC - 数据绑定(自定义数据转换器:PropertyEditor、Formatter、Converter)(三)
167 0