Создание пользовательской аннотации для проверки полей между полями - PullRequest
0 голосов
/ 21 сентября 2019

В настоящее время я использую аннотации для проверки всех полей в моих объектах.Однако теперь я столкнулся с проблемой, когда аннотации, похоже, не будут работать, и я не уверен ни в каких других решениях.

У меня есть класс Consumer, и в этом классе у меня есть класс PersonalInfo (который содержит поле для ssn)

Основываясь на определенном значении поля в Consumer, я хочу проверить, присутствует ли ssn,

Я попытался создать пользовательскую аннотацию на уровне класса Consumer, однако нет способа передать объект PersonalInfo в качестве аргумента для извлечения ssn.Пользовательские аннотации допускают только аргументы типа int, str и т. Д.

@SSNRequiredForCredit.List({ 
@SSNRequiredForCredit(reason= "reason", ssn= "personalInfo", message = "SSN cannot be null when reason=credit")
})

public class Consumer {
@NotNull 
private String date;

@NotNull
private String sessionNnumber;

@NotNull
private String reason;

@NotNull
private String trackingNumber;

@ //add annotation to require ssn when reason=credit
private PersonalInfo personalInfo;

}

public class PersonalInfo{
private String name;
private String dob;
private String ssn;
private String phoneNum;
private String street;
private String city;
private String state;
private String zip;
}

Попытка добавить пользовательскую аннотацию, подобную показанной выше, но в моем валидаторе (не показан выше) я получаю сообщение об ошибке, что personalInfoнедопустимый аргумент для аннотации.

Я не могу объединить объекты.Любые другие варианты, чтобы решить эту проблему?

...