JPA 2.1, @Convert AttributeConverter.
An AttributeConverter , .
public class CreditCard {
@Convert(converter = CreditCardNumberConverter.class)
private String creditCardNumber;
}
:
public class CreditCardNumberConverter implements AttributeConverter<String, String> {
@Override
public String convertToDatabaseColumn(String attribute) {
}
@Override
public String convertToEntityAttribute(String dbData) {
}
}
JPA 2.1, EntityListener @PrePersist, @PreUpdate @PostLoad, .
, EntityListener Pre/Post, -, :
public class CreditCard {
@Column(name = "card_number", length = 25, nullable = false)
private String encrpytedCardNumber;
@Transient
private String cardNumber;
@PostLoad
public void decryptCardNumber() {
this.cardNumber = EncryptionUtils.decrypt(encryptedCardNumber);
}
@PrePersist
@PreUpdate
public void encryptCardNumber() {
this.encryptedCardNumber = EncryptionUtils.encrypt(cardNumber);
}
}
, , Hibernate, , .