Искам да валидирам обект условно

имам предмет в моя клас. Валидирам го с валидатор на хибернация по следния начин:

@Pattern(regexp="[0-9]{1,13}")
private String onlyNumber = null;

Но искам да валидирам обекта си, когато

if(onlyNumber != null && !onlyNumber.equals("")

защото не е задължително. И искам да го направя с регулярен израз. Има ли някакъв начин да успеем това? Благодаря


person devgirl    schedule 11.02.2015    source източник
comment
Трябва да напишете своя персонализиран ConstraintValidator и анотация.   -  person shazin    schedule 11.02.2015
comment
stackoverflow.com/questions/5998978/   -  person Frederic Close    schedule 11.02.2015


Отговори (1)


@Pattern(regexp="[0-9]{0,13}")

трябва да е достатъчно. null стойностите винаги се считат за валидни (имате нужда от @NotNull в допълнение към други проверки, за да отхвърлите null). И празният низ съвпада с горния регулярен израз.

person JB Nizet    schedule 11.02.2015
comment
Да, прав си, но всъщност моят низ може да получи стойност и искам да отхвърля валидирането и в този случай. - person devgirl; 11.02.2015
comment
Да така? Пробвали ли сте горното? Както казах: празният низ съответства на горния регулярен израз. Така че празният низ е валидна стойност. И това е, което искате. - person JB Nizet; 11.02.2015
comment
съжалявам, мислех, че е същото като моето. Да, опита се и се получи. Благодаря ти !! - person devgirl; 11.02.2015