условная проверка для нескольких регистраций - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть 2 поля, которые передаются в теле запроса. У меня есть условная проверка, если значение1 = «ОК», то значение2 должно быть «ПРОЙДЕНО» или вызвать ошибку проверки. Он отлично работает для одного экземпляра, но в моем теле json я могу передать несколько запросов регистрации одновременно, как тело запроса Json, показанное ниже.

[
  {
    "Value1": "OK",
    "Value2": "NOTPASSED"
  },
  {
    "Value1": "OK",
    "Value2": "PASSED"
  }
]

Как я могу обработать вторую запись, хотя проверка первой записи не удалась?

РЕДАКТИРОВАТЬ: Глядя на комментарии, я подумал, чтобы упростить вопрос еще больше:

это поля из тела запроса:

@NotEmpty
private String value1;
@NotEmpty
private String value2;

Я могу пройти несколько регистрацийв моем теле JSON, как показано выше. скажем, я передал тело вроде этого:

[
  {
    "Value1": "",
    "Value2": "NOTPASSED"
  },
  {
    "Value1": "OK",
    "Value2": "PASSED"
  }
]

Так как у нас есть проверка NotEmpty для значения1, он выдаст ошибку проверки, но вторая запись со значением1 в качестве «ОК» и значением 2 в качестве «ПРОЙДЕНО» неесть какие-либо ошибки проверки. Поэтому мне нужна функциональность, чтобы иметь возможность обрабатывать вторую запись при выдаче ошибки для первой записи.

Ответы [ 3 ]

0 голосов
/ 06 ноября 2019

возьмите этот список объектов и цикл, затем выполните условие if else и подтвердите ..

list.forEach(object->{
   if(object.getValue1()=="OK")
    if(object.getValue2()=="PASSED")
    //do ur logic because if pointer come here means it's valid
    else
    //do ur logic if not valid like raise a validation-error
    //my suggestion is store invalid instances here and through in single 
    //shot

});
0 голосов
/ 06 ноября 2019

Как вы сказали, это может быть Пустая строка иногда тогда вместо использования @ NotEmpty вы должны использовать @NotNull.

Я думаю,это должно решить вашу проблему, так как для пустой строки для value1 он не сгенерирует валидацию.

0 голосов
/ 06 ноября 2019

Тело запроса - это массив, имеющий несколько экземпляров

{
  "Value1": "OK",
  "Value2": "NOTPASSED"
}

. Вы можете циклически проходить по массиву и проверять каждый экземпляр, например,

        List<VallidationError> validationErrorList = new ArrayList<>();
        for(RequestElement element: requestBody) {// RequestElement is the class for each instance in the request body
            if(element.getValue1().equals("OK") && !element.geValue2().equals("PASSED")) {
                validationErrorList.add(new ValidationError());// Add validation error to a list of validation errors
            } else {
                processElement(element);// Process the record here
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...