Итак, по сути, вы спрашиваете, как ввести тип аннотированного свойства в AttributeConverter
.Боюсь, что это невозможно с ванильным JPA.
Если вы используете Hibernate, вы можете вместо этого использовать составной тип пользователя.См. здесь , в частности, раздел 4.4.«Параметризация типа».В итоге вы получите что-то вроде:
@Type(type = "com.example.ConvertibleEnumType", parameters = @Parameter(name = "lookup", value = MyEnum.class))
private MyEnumClass property;
, и вам все равно придется сильно полагаться на отражение в своем пользовательском определении ConvertibleEnumType
, но это сработает - вы сможете прочитать значениеlookup
внутри setParameterValues
.
(лично для ТБХ, я бы по-прежнему рассматривал отдельный конвертер для каждого перечисления, используя, например, подход, описанный здесь , в качестве более чистого решения)