首页 > 解决方案 > 如何在spring-hibernate中动态绕过字段上的验证

问题描述

我处于需要绕过特定字段的验证约束的情况。并验证其他字段。是否有可能在spring-hibernate中做到这一点。例如,我对两个字段有验证约束,如图所示

@Entity
@Table(name="user")
public class User {

    @Id
    @Column(name="user_id")
    private long userId;

    @NotEmpty("loginId can't be empty")
    @Column(name="login_id")
    private String loginId;

    @NotEmpty("password can't be empty")
    @Column(name="password")
    private String password;

    // getters/setters
}

现在,当我更新用户时,我不需要验证密码。因为当用户更新时我不会更新。

标签: javaspringhibernatespring-boot

解决方案


您可以通过为@javax.validation.Valid每个请求参数指定注释来验证控制器层上的传入对象。这样,那些具有任何验证约束的字段将被自动验证。例如:

@RequestMapping("given-URL")
public void controllerExample(@Valid @RequestBody User user) {
   // code
}

推荐阅读