Получить Discrimator value

Подскажите, как получить в коде Discrimator value для сущностей, у которых Inheritance strategy = Single table?

И видимо отдельный вопрос, как получить Discrimator value, который по умолчанию. Из annotation класса?

Михайл,

В платформе дополнительного API по получению discriminator value нету. Вы сможете получить его с использованием рефлексии:

DiscriminatorValue discriminatorValueAnnotation = (DiscriminatorValue) 
clazz.getAnnotation(DiscriminatorValue.class);
return discriminatorValueAnnotation.value();

Андрей, доброго дня.

clazz - в данном случае это класс, значение дискриминатора которого я хочу получить?
Т.е. в моем случае, предположим, это должно выглядеть так?

DiscriminatorValue discriminatorValueAnnotation = (DiscriminatorValue) ActivityInstall.class.getAnnotation(DiscriminatorValue.class);

Если так, то discriminatorValueAnnotation в моем случае равен null.

Михаил,
А в классе есть аннотация DiscriminatorValue ?

Нет. В данном случае это сущность с дискриминатором по умолчанию.

Привет!

Дикий способ, запрос SQL в БД :slight_smile: Там то колонка есть!

Значение по умолчанию достаточно обработать отдельно. Либо есть аннотация, либо её нет - значит используется поведение Eclipse Link с указанием имени сущности.

1 симпатия