问题标签 [javax.validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

spring - 如何在 org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl 类中排除使用 basePath

由于我无法控制的原因,我不得不在服务层使用验证。

该类看起来像这样:

我正在使用 javax.validation.ConstraintValidator 进行自定义验证

问题是由于创建了 ConstraintValidatorContextImpl,方法和类型参数的名称出现在私有 final PathImpl basePath 字段中:createMethod.arg0,因此,错误字段如下所示:createMethod.arg0.name。

如何排除使用方法名和参数名。谢谢

0 投票
0 回答
148 浏览

java - 为我的 DTO 构建复合唯一约束

我正在尝试为我的 Java/Spring Boot REST API 构建一个 ConstraintValidator。
问题是:我必须将一个国家和一个州/省保存到数据库中,但一个国家不能有两个同名的州/省。

所以我设置了我的域类:State.class,带有来自 javax.persistence 的 @UniqueConstraint,当对象到达我的数据库时它工作得很好,但是我想让它更安全并构建这个 ConstraintValidator 来为我的请求 DTO 做同样的事情,我称之为 StateRequestDto.class。

由于我喜欢尝试使东西通用化,因此我正在尝试构建一个通用的多重约束验证器,例如,您在 DTO 类上使用,传递您希望唯一的参数组合并使用实现 ConstraintValidator 的类,构建一个 JPQL查询注解上的参数组合是否已经存在。

这是我的 StateRequestDto.class

还有我的 UniqueCombo 注释:

0 投票
1 回答
336 浏览

java - 使用列表验证请求作为带有 javax.validation 的字段

javax.validation用于验证使用 spring 开发的 API 中的请求。

我必须进行验证List<Integer>,以便所有值都必须是正数,并且列表的大小必须完全等于某个固定数字,例如 2。

有效请求应该是 [1,2]

无效请求应为 [-1,2] 或 [1,2,3]

0 投票
1 回答
65 浏览

java - 如果两个或多个注释满足同一字段上的条件,Javax 验证不稳定

当我应用两个验证注释并且在某些特定情况下都检查相同的条件时,我观察到一个问题,javax 验证输出不稳定。这是代码示例:

在上面的代码ValidDate中是一个自定义注释,它检查给定日期是否有效以及不为空,并NotBlank检查空、非空。

因此,如果日期为空,则两者都返回 true,并且消息响应在 Date Missing 和 Invalid Date 之间切换

有什么方法可以停止这种切换并且只能将 NotBlank 用于 null 情况?

0 投票
1 回答
403 浏览

java - Spring中如何设置@NotEmpty注解消息?

在 Java(+ Spring Boot)项目中,有一个使用javax.validation如下所示的符号:

我看了一下它们的用法,但有些地方我无法理解:

1.是否有特殊用途,例如条件消息显示validation.username.password?例如,如果用户名字段为空,则显示此消息?还是和领域完全一样product

2.我搜索项目,但找不到validation.product.notEmptyvalidation.username.password。那么,它们是如何工作的呢?我认为这些消息应该有一个定义,但是我没有找到,它来自默认消息javax.validation吗?

0 投票
3 回答
43 浏览

spring-boot - 强制验证注解提供消息

我正在使用休眠验证器进行 POJO 验证,并且我还创建了一些自定义验证器。这是一个例子:

我们需要使用特定代码而不是消息来表示所有验证错误。为了实现这一点,我们决定在我们使用的每个注释中指定代码。上面的例子现在看起来像这样:

但是我们对这种方法有一个问题。我们不能强制在注释中始终提供消息(在我们的例子中是错误代码)。对于自定义注释,它仍然可以,因为我们不提供默认消息,但对于标准注释,有机会错过它,如果我们不小心错过提供自定义消息,则会静默生成字符串消息。

有没有办法强制在注释中始终提供消息。保持一定的一致性可能会有所帮助。

0 投票
1 回答
241 浏览

java - 如何在 javax.validation 注释中使用 application.properties 值

我有一个notification.max-time-to-liveapplication.yaml文件中调用的变量,并希望将其用作javax.validation.constraints.@Max()注释的值。

我已经尝试了很多方法(使用 env.getProperty()、@Value 等),它说它必须是一个常量值,有没有办法做到这一点?

0 投票
0 回答
76 浏览

spring - 为什么我们必须在覆盖默认方法时重新定义 javax.validation.constraints?

我们使用 openapi-generator 生成 Spring 代码。然后我们通过实现 API 接口来构建控制器并覆盖生成的默认方法。

我总是想知道为什么我们必须重新定义 javax.validation.constraints?是否有防止这种情况的选项,以便始终使用生成的接口上的那些?

我更喜欢简单地覆盖这些方法而不再次定义它们。我还想强制执行所有验证。现在我可以跳过其中一个的复制/粘贴,然后界面对规范无效。

0 投票
2 回答
61 浏览

java - 如何通过组合 2 个字段来使用 @NotEmpty?

我有以下要求。

我将此请求用于 2 种不同的方法,它们都只使用一个字段,不需要另一个字段。假设这个请求中的methodA usingcode和methodB usingname字段(不需要其他字段)。所以,在这个场景中,我认为一种解决方案是对两种方法使用相同的请求,而不是创建两个单独的请求。那么,有什么东西可以使字段之一不为空吗?我也不确定它是否能解决我的问题,因为在这个场景中,请求将不知道哪个属性不应该为空。任何想法来解决这个问题?

0 投票
0 回答
48 浏览

java - javax验证问题以获取分配字段的错误消息

您好,我是 Java 初学者,使用 SpringBoot 验证 javax 时遇到问题。我创建了自己的 ExceptionHandler 来处理验证异常:MethodArgumentNotValidException当请求无效时抛出。

无效的 JSON 请求示例:

控制器:

}

带有 javax 验证注释的类:

}

我的处理程序中的方法:

错误消息类:

我想要实现的是获得每个字段的嵌套验证错误,如下例所示:

我在这一点上得到了什么:

正如您所看到的,代码和名称键在这两个字段中都出现验证错误,这是错误的 :) 我将不胜感激任何帮助 :)