验证后更改对象字段的值

时间:2019-10-03 04:48:09

标签: java

我有一个Java对象User,其中包含以下字段:

public class User {
      private String firstName;
      private String desc;
      private String lastName;
      private String profile;
      ... }

在某些String字段上,我需要使用自己的验证约束进行验证,如果该验证约束失败,我想将该对应字段的值更改为某个默认值。

我通过休眠将这个对象保存在数据库中。

为进行验证,我编写了自己的约束验证器(如本示例所示) https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-customconstraints.html#validator-customconstraints-validator

我可以使用自定义验证器来验证这些字段,但是如果验证失败,我不知道如何将相应字段的值更改为默认值。

2 个答案:

答案 0 :(得分:1)

public class UserValidator {
    public User validate(User user) {
        // check user fields, make sure they are valid
        // if they are, return the same user
        // if not, create another user object, with the required changes, and return that
    }
}

session.save(new UserValidator().validate(user));

答案 1 :(得分:0)

您可以更改对象的字段并调用session.update(object)