当前位置: 首页 > 面试题库 >

控制验证批注的顺序?

孟均
2023-03-14
问题内容

我有一个带有两个验证批注的字段

@NotEmpty
@Length(min=3,max=100)
String firstName;

我只是想知道hibernate是如何指定要首先执行哪个验证注释的顺序的,以及是否可以自定义

我要问的原因是,如果我将该字段留空,则有时显示的第一条验证消息表示不为空,而其他时候如果我将该字段留空,则会得到长度注释的验证消息。

提前致谢。


问题答案:

使用JSR-303验证组。

如果未指定任何组,则约束是“默认Bean验证”组的一部分(请参阅:)javax.validation.groups.Default

创建一个接口作为您的“扩展”(或任何您想称呼它的)组:

public interface Extended{}

现在创建一个具有javax.validation.GroupSequence注释的接口。

@GroupSequence({Default.class, Extended.class})
public interface MySequence {}

根据您的约束设置验证组

@NotEmpty // If no group is specified it is part of the default group
@Length(min=3,max=100, groups = Extended.class)
String firstName;

将MySequence传递给您的验证程序调用。

validator.validate(object, MySequence.class);

根据您@GroupSequence的指定,将首先验证默认约束,如果没有遇到违反冲突的情况,它将进入扩展组。



 类似资料:
  • 我有一个spring rest服务,它接受Person对象。Person对象具有名称、电话号码和电子邮件。当添加一个人时,电话号码是强制性的。如果存在电话号码属性,它将使用或或验证是否为空。但是如果属性不存在,验证就不起作用。请建议提供任何验证注释,以检查JSON请求中是否存在该属性。 以下是请求体测试用例 {“name”:“anu”,“phonenumber”:“”,“email”:“test@

  • 我想验证请求参数。我已经浏览了很多博客并回答了问题,我也做了同样的事情。在控制器类上添加了@Validated。 控制器中的方法: 控制器建议 配置: 完成所有这些之后,现在我得到一个404错误。"状态":404,"错误":"未找到","消息":"没有可用的消息"

  • 问题内容: 当通过反射(即,使用方法)访问在字段上定义的注释时,Java 6或7规范对返回注释的顺序做了任何保证。我已经检查了相关的Java文档,但似乎找不到确切的答案。 问题答案: 这确实有点不足。让我们从可重复批注的Java 8功能入手,因为它有一些地方: JLS第9.7.5节。相同类型的多个注释: 隐式声明的注释称为 容器注释 ,而出现在上下文中的多个类型的 注释 称为 基础注释 。容器批注

  • 我们正在尝试做一些具有登录屏幕的网站。但是我们有一个问题。我们的域是本地主机/登录/用户。但是,如果用户进入localhost/Home/Index,他/她无需登录即可访问我们的主站点。因此,我们将 [授权] 写入索引控制器。但我不知道我必须使用什么。我是否必须在我们的项目中使用AuthorizeAttribute? 如何访问LoginController/Authentication函数中的索引

  • 问题内容: 有没有一种方法可以验证在Mockito中是否曾经调用过a? 问题答案: 帮助您做到这一点。

  • 我需要你的帮助。从以下位置更新梯度时出现运行时错误: null null

  • 我们正在构建某种自动自描述REST服务(实时文档生成)。为此,我们有一个控制器方法,它查找所有控制器beans,并获取请求映射信息,以便在一个友好的html页面中显示它们。 为此,我们使用 MetadataReader(通过 CachingMetadataReaderFactory 创建)来获取类的元数据。当我们获取公共方法的 MethodMetaData 时,我们会找到 RequestMappi

  • 3.1 顺序控制结构 程序是一个语句序列,执行程序就是按特定的次序执行程序中的语句。程序中执行点的 变迁称为控制流程,当执行到程序中的某一条语句时,也说控制转到了该语句。由于复杂问 题的解法可能涉及复杂的执行次序,因此编程语言必须提供表达复杂控制流程的手段,称为 编程语言的控制结构。 程序的控制流程可以用流程图(flowchart)来形象地表示。流程图采用标准化的图形符 号来描述程序的执行步骤,是