2013-09-22 1 views
2

У меня есть вопрос о проверке креста на основе JSR. У меня есть служба, основанная на отдыхе, для получения и публикации. Так что у меня есть что-то вродеJSR cross filed validation

@GET 
ItemOfferId getItem(String) 

другого является то, что

@Post 
boolean setItem(ItemOfferId) 

В классе ItemOfferId у меня есть аннотацию уровня класса называется @validoffer. Так что я, как этот класс

@validOffer 
Class ItemOfferId{ 
    OfferId offer; 
    ItemId item; 
} 


@Target({ ElementType.TYPE }) 
@Retention(RUNTIME) 
@Documented 
@Constraint(validatedBy = { OfferValidator.class }) 
public @interface ValidOffer { 

    String message() default ""; 
    Class<?>[] groups() default {}; 

    Class<? extends Payload>[] payload() default {}; 
} 

public class Validator implements ConstraintValidator<ValidOffer,ItemOfferId>{ 
    //i get here ItemOfferId object and do my custom validation 
} 

Теперь мой вопрос заключается в том, что есть некоторые ограничения, которые являются специфическими для «получения» услуг, а некоторые являются специфическими для «Установить» сервис. Тот же объект используется как в методах get и set. Есть ли способ сообщить аннотации о том, что он включен, чтобы получить подтверждение. Так что в основном я хочу передать некоторые параметры, основанные на вызове метода времени выполнения.?

Возможно ли это? Я много искал в Интернете, но не смог найти ответ ... Было бы очень приятно, если бы я смог выяснить, как решить эту проблему.

Спасибо, Свати

+0

Если у вас уже есть недопустимые данные в вашей базе данных, в чем смысл проверки во время 'get()'? И в этом случае, что можно сделать с помощью текущей или удаленной системы? – WeaponsGrade

ответ

0

Рассматривали ли вы с помощью пользовательского JSR 303 ограничения, которое принимает значение. Затем значение используется валидатором для определения того, как оно должно быть проверено.

Так что в вашем случае, если вы будете использовать другое значение с валидатора на почте или получить подтверждение, чтобы сказать ему, какой режим проверки в.

Существует пример здесь, который показывает, что именно вам нужно сделать see 3.1 Creating a simple constraint

+0

Спасибо Mangnu оценил ваш ответ – swati