场景: 在设计数据库时,我们通常会建立一个dict表,存储了项目内所有的字典名称和字典值,例如用户等级、用户职称等字典,然后其他表内的存储的值是dict_code,前端展示需要将dict_code映射为dict_value。
示例: User表有个sourceType字段(1=微信、2=在发版),返回给前端时需要返回sourceType(dict_code),和sourceTypeName(dict_key)。
实现方案: 通过自定义JsonSerializer方式实现枚举值的动态转换。
- 定义注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@JacksonAnnotationsInside
@JsonSerialize(using = DictTranslationSerialize.class)
public @interface DictTranslation {
/**
* 数据库内的 dict_key
*/
String dictKey();
/**
* 转换后的json字段名称
* @return
*/
String targetFieldName() default "";
}

文章讲述了如何在设计数据库时,通过自定义JsonSerializer和DictTranslation接口,实现在Java中处理枚举值与dict_code的映射,以及如何在Entity类上添加注解以实现这种转换功能。
最低0.47元/天 解锁文章
23万+

被折叠的 条评论
为什么被折叠?



