У меня есть класс модели сущности с именем Customer, в котором есть следующий столбец поля, в котором хранится хэш пароля пользователя, сгенерированный PgCrypto в Postgresql:
@Entity(name = "customers")
@Table(name = "customers")
public class Customer implements Serializable {
/**
*
*/
private static final long serialVersionUID = -3265467376787297897L;
@JsonIgnore
@Id
@GeneratedValue(generator = "user_id_generator")
@SequenceGenerator(name = "user_id_generator", sequenceName = "user_id_sequence", initialValue = 1)
private Long id;
private String email;
//@JsonIgnore
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ColumnTransformer(write = "digest(?, 'sha512')", read = "encode(password, 'hex')")
@Column(columnDefinition = "bytea", updatable = false)
private String password;
@ColumnTransformer(write = "pgp_sym_encrypt(?, current_setting('encrypt.key'), 'cipher-algo=aes128')", read = "pgp_sym_decrypt(phone, current_setting('encrypt.key'), 'cipher-algo=aes128')")
@Column(columnDefinition = "bytea")
private String phone;
@ColumnTransformer(write = "pgp_sym_encrypt(?, current_setting('encrypt.key'), 'cipher-algo=aes128')", read = "pgp_sym_decrypt(address, current_setting('encrypt.key'), 'cipher-algo=aes128')")
@Column(columnDefinition = "bytea")
private String address;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Теперь у меня возникла проблема при сохранении любого другогополя через хранилище класса модели сущностей Customer для пользователя, он также сохранит хэш пароля, генерируя новый хэш пароля, хранящийся в базе данных.Есть ли способ сказать Spring, чтобы он игнорировал определенное поле при сохранении модели объекта или есть ли способ обновить настройки столбца, например, изменить «обновляемый» в аннотации «Столбец»?