package com.yunhai.userbase.common.converter;
import com.yunhai.platform.utils.enums.IEnum;
import javax.persistence.AttributeConverter;
/**
* 通用「int <-> 实现 IEnum<Integer> 的枚举」JPA 转换器抽象基类。
*
* 绑定机制(通用做法):为每个枚举写一个极薄的子类,在构造器里传入枚举 class 即可完成绑定, * 然后实体字段用 {@code @Convert(converter = XxxEnumConverter.class)} 引用该子类。例如: *
* public class GroupTypeEnumConverter extends CommonIntEnumConverter<GroupTypeEnum> {
* public GroupTypeEnumConverter() { super(GroupTypeEnum.class); }
* }
*
* 这样同一套逻辑可服务任意枚举;又因为每个枚举拥有独立的转换器实例,
* 彼此之间不会串类型(标准 JPA 的 @Convert 是按 converter 类创建共享单例的,
* 若让多个不同枚举共用同一个泛型实例,则无法区分各自的枚举 class,故采用「每枚举一子类」的绑定方式)。
*
*
* @param