問題

我有一個Java物件User,具有以下欄位:

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

在一些String欄位上,我需要使用我自己的驗證約束進行驗證,如果驗證約束失敗,我想將相應欄位的值更改為某些預設值.

我正在透過hibernate將此物件儲存在我的資料庫中.

為了驗證,我已經編寫了自己的約束驗證器(如本例中顯示的那個) https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-customconstraints.html#validator-customconstraints-validator )

我能夠使用自定義驗證器驗證這些欄位,但我不知道如何將相應欄位的值更改為預設值,以防此驗證失敗.

  最佳答案

 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));
 

  相同標籤的其他問題

java