Skip to main content
 首页 » 编程设计

java之如何在DAO中并发使用Spring Validation Annotation(Bean Validation Specification)

2024年08月06日108linjiqin

我有一个用户实体,它正在使用 Spring 验证注解 [已编辑 - Bean 验证规范],如下所示。

@NotEmpty(message = "{warn.null.user.password}") 
private String            password; 

当我用于注册操作时,此验证是可以的,但我试图通过称为更新的不同操作使用相同的实体(用户),我想取消 @NotEmpty 注释。我该怎么做?

问候。

请您参考如下方法:

I have a User Entity and it's using Spring Validation Annotation as follow.

首先,它不是“Spring Validation Annotation”。这些是来自 Bean Validation Specification 的注释(称为 JSR-303 和 JSR-349)。一些非标准注释由验证提供程序(例如,Hibernate Validator)提供。

But I tried to use the same Entity(User) by different Action called Update and I want to void @NotEmpty Annotation

这可以通过使用注释的 groups 属性来实现。在第一种情况下,您将运行所有组,而在另一种情况下,您将只运行其中的一些组。不幸的是,规范(当前)不支持(因为 @Valid 不允许提供 groups)。

这里是Spring的非标准注解@Validated的地方来拯救:你可以用它指定验证组!

但它仅适用于 Controller 中的验证模型。在将实体保存到数据库之前,它不能用作验证,因为无法指定组(始终使用 Default 组)。

例如,您可以使用这个问题:Hibernate-validator Groups with Spring MVC