JSE*_*eny 5 validation spring annotations
我为唯一的电子邮件做了一个自定义验证注释(当用户自己注册时,程序会检查电子邮件是否已经在数据库中)。
一切正常,但是当我需要修改用户信息而不是创建新信息时,我遇到了“电子邮件已在使用中”的问题
我可以以某种方式仅关闭@UniqueEmail验证吗(我需要其他的,如电子邮件模式和密码验证)?
所有验证注释都在同一个 User bean 中。
谢谢你。
我假设您正在使用javax.validation.
首先你需要一个interface OnUpdate:
javax.validation.groups.Default
public interface OnUpdate extends Default {}
Run Code Online (Sandbox Code Playgroud)
现在您需要设置仅需要在以下位置运行的所有注释:UPDATE
@NotNull(groups = OnUpdate.class)
Run Code Online (Sandbox Code Playgroud)
现在,您已将验证分为两组,即 中的验证OnUpdate和Default. 运行Default将包括OnUpdateas OnUpdateextends中的那些Default。
现在,这就是有点棘手的地方 - 您需要告诉框架在每个任务上运行哪些验证。
如果使用 JPA,您只需设置以下属性:
javax.persistence.validation.group.pre-update = com.my.package.OnUpdate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3316 次 |
| 最近记录: |