Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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_Hibernate_Validation_Bean Validation - Fatal编程技术网

Java 仅当对象字段不为空时,才可以验证该字段吗?

Java 仅当对象字段不为空时,才可以验证该字段吗?,java,hibernate,validation,bean-validation,Java,Hibernate,Validation,Bean Validation,这个问题有两个现有的变体: :有条件地处理字符串字段的解决方案 :唯一的答案是演示行为,并提示在手动触发验证时如何处理 我的问题添加了一个限定符,即当在可能为null的对象上使用@Valid时,如何执行此操作 这里的用例是,我们有两个字段,其中一个字段或另一个字段需要不为null(包含字段的类上的自定义验证器)。当一个不是null时,我需要它是有效的。然后,我是否需要在自定义验证器中完全手动验证该对象,从而为其增加比预期更多的责任 在这种情况下,仅使用注释会导致抛出NullPointerExce

这个问题有两个现有的变体:

  • :有条件地处理
    字符串
    字段的解决方案
  • :唯一的答案是演示行为,并提示在手动触发验证时如何处理
  • 我的问题添加了一个限定符,即当在可能为null的对象上使用@Valid时,如何执行此操作

    这里的用例是,我们有两个字段,其中一个字段或另一个字段需要不为null(包含字段的类上的自定义验证器)。当一个不是null时,我需要它是有效的。然后,我是否需要在自定义验证器中完全手动验证该对象,从而为其增加比预期更多的责任


    在这种情况下,仅使用注释会导致抛出NullPointerException,这会在处理它之前使其脱离验证。目前没有办法做到这一点吗?

    @有效的
    引用只有在它们不为空时才会被遵循,所以一定是其他原因导致了您的NPE。

    我认为这是一个足够复杂的用例,需要您使用自定义验证器。在验证器中编写逻辑,给它一个注释,然后执行您需要执行的操作。
    @Valid
    引用仅在不为null时才被遵循。你能展示你的课程并描述NPE的确切位置吗(stacktrace)?@Gunnar你确实是对的。我做了一个简单的测试用例,它就像你说的那样工作。它现在也在更复杂的用例中工作。继续写一个答案,这样我就可以将这个谜团标记为已解决。是否有明确说明这一点的参考文献?