#java #jpa #annotations
#java #jpa #аннотации
Вопрос:
Мне нужно проверить, есть ли у объекта какие-то конкретные аннотации (@ElementCollection и @JoinColumn)
for(Annotation annotation : field.getAnnotations())
{
if (annotation.equals("@ElementCollection") || annotation.equals("@JoinColumn"))
//do something
}
}
Но как я могу проверить, есть ли @JoinColumn, если это что-то вроде этого? (a @JoinColumn «внутри» a @CollectionTable)
@ElementCollection
@CollectionTable(name = "ALARM_PLAN_IDS", joinColumns = {
@JoinColumn(name = "ALARM_ID", referencedColumnName = "INST_ID"),
@JoinColumn(name = "ALARM_ID_AK", referencedColumnName = "INST_ID_AK") })
protected Set<InstanceId> allPlanIdsInExistence;
Спасибо
Ответ №1:
Используйте отражение annotation
объекта (например getDeclaredMethods
). Это покажет методы получения для подобъектов. Исходя из этого, вы можете делать все, что вам нужно.