您需要做的是编写一个通用基类,然后将其扩展为要保留的每种枚举类型。然后在
@Converter注释中使用扩展类型:
public abstract class GenericEnumUppercaseConverter<E extends Enum<E>> implements AttributeConverter<E, String> { ...}public FooConverter extends GenericEnumUppercaseConverter<Foo> implements AttributeConverter<Foo, String> // See Bug HHH-8854{ public FooConverter() { super(Foo.class); }}Foo您要处理的枚举在哪里。
另一种方法是定义一个自定义注释,修补JPA提供程序以识别该注释。这样,您可以在构建映射信息时检查字段类型,并将必要的枚举类型提供给纯通用转换器。
有关:
- https://hibernate.atlassian.net/browse/HHH-8854



