当前位置: 首页 > 知识库问答 >
问题:

是否可以仅在对象字段不为null时验证它?

庾波光
2023-03-14

这个问题现有两种变体:

  1. 仅当字段不为空时验证:有条件地处理字符串的解决方案
  2. Hibernate验证-仅在对象不为null时进行验证:唯一的答案演示了该行为,并提示您在手动触发验证时如何处理该行为

我的问题添加了限定符,即在可能为空的对象上使用@Valid时如何执行此操作。

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

在这种情况下,只使用注释会导致抛出NullPointerException,这会在处理之前将其中断验证。目前是否没有办法做到这一点?

共有1个答案

姜凯风
2023-03-14

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

 类似资料:
  • 问题内容: 我使用并且有以下内容; 验证说,但问题是该字段是 可选的 。因此,当用户将其留空时,也会显示相同的错误消息。 因此,我想做的是仅在字段不为空时验证。如果该字段为空,则跳过该字段的验证 问题答案: 我建议您不要使用,而是使用 主要原因是我们显示了要限制用户的一组值的消息,在此情况下,您的条件消息中显示了您不想限制的值。 因此,您想限制用户输入除空格和数字之外的其他任何内容,为此输入一个正

  • 我正在尝试使用自定义消息和自定义验证器在Spring boot中验证映像。这是我的验证器文件路径 我只需要知道如何首先检查图像文件是否存在,然后验证它。 我需要提到我的图像可以是空值,在这种情况下,我不应该做验证。 下面是更多说明的示例: 我首先创建了注释,如下所示: 我创建了如下验证器: 最后,应用注释如下: 自定义验证器的代码在这里:Spring Boot中的文件上载:在最后一条评论中,由Wi

  • 尽管违反直觉,而且显然不是JPA标准所要求的,但Eclipselink和Hibernate都竭尽全力创建了以下NullPointerExceptions的源代码:当嵌入实体中的对象的所有字段都是null时,它们会将字段本身替换为null。下面是一个简化的例子: 我们的想法是,我们可以编写类似于。当直接访问字段时,我们会为此付出额外的间接代价:。这通常是一个很好的权衡,但当我们必须编写

  • 我想验证字段,如果存在,将失败,如果另一个字段不存在如何做到这一点?我已经创建了自定义验证,以获得基于存储ID的记录 我有字段和,并且字段根据在最大值和最小值之间进行验证,如果我显示=且未填写字段,则验证字段将通过,并显示错误,因为我未填写我希望在执行自定义验证之前检查是否为空。。 我已经阅读了laravel文档上的所有验证方法,但仍然没有找到解决方案。怎么做?

  • 问题内容: 假设我们定义这个Book类,以确保不能向isbn分配空值: 这样可以防止创建isbn为null的Book对象,但是在创建具有非null isbn的book对象之后,我们可以通过反射修改值并将其设置为null。 无论如何(使用技巧或Java功能)是否可以防止Book实例存在于isbn为null的内存中? 注意:这个问题与s 无关。 问题答案: 技术上,引用是可以为空的。即使您可以用来确保

  • 问题内容: 似乎是正确的选择,但文档未说明是否可行或如何执行。 此JSON对象: 相应的 Flat Rust结构应为: 问题答案: 没有使用属性的内置方法,但是您可以为自己的类型编写自己的impl,该类型会先反序列化为中间的辅助表示形式,然后将数据重新排列为所需的结构。 输出为: 在三个明显不同的地方出现了很少的嵌套: 邻近其他领域 本身在最高层 本身低于顶层 这三个要求不同的方法。在此问题中观察