Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多个注册的条件验证_Java_Spring_Hibernate_Spring Boot - Fatal编程技术网

Java 多个注册的条件验证

Java 多个注册的条件验证,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我有两个字段正在请求正文中传递。我有一个条件验证,如果value1=“OK”,那么value2必须“通过”或引发validationerror。它在单个实例中运行良好,但在我的json主体中,我可以一次传递多个注册请求,如下面所示的json请求主体 [ { "Value1": "OK", "Value2": "NOTPASSED" }, { "Value1": "OK", "Value2": "PASSED" } ] 虽然第一条记录的验证失败,但

我有两个字段正在请求正文中传递。我有一个条件验证,如果value1=“OK”,那么value2必须“通过”或引发validationerror。它在单个实例中运行良好,但在我的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"
  }
]

由于我们没有对value1进行空验证,它将抛出一个验证错误,但是value1为“OK”,value2为“PASSED”的第二条记录没有任何验证错误。因此,我需要一个能够处理第二条记录的功能,同时为第一条记录抛出错误。

请求主体是一个具有多个

{
  "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
            }
        }
List validationErrorList=new ArrayList();
for(RequestElement:requestBody){//RequestElement是请求正文中每个实例的类
if(element.getValue1().equals(“确定”)和&!element.geValue2().equals(“通过”)){
validationErrorList.add(new ValidationError());//将验证错误添加到验证错误列表中
}否则{
processElement(element);//在此处处理记录
}
}

获取该对象列表并在生成if-else条件后循环 并验证


正如您所说,它有时可以是空字符串,而不是使用@NotEmpty,您应该使用@NotNull


我想它应该可以解决您的问题,因为在value1的空字符串上,它不会引发验证。

您可以分享您处理单个注册的逻辑吗?在上面的示例中,它是通过还是失败?也许JSON模式可以实现这一点,但是我不确定。拿那个对象列表和循环,然后做一个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

});