Я хочу сохранить сущность вместе с шифром ее идентификатора (первичного ключа), который будет приписываться базой данных при первом сохранении сущности. Я сделал это, сохранив дважды, в первый раз для присвоения идентификатора, с обратным вызовом @PostPersist
, который назначает свойство «encryptedID», и во второй раз для обновления поля «encryptedID». Моя сущность выглядит следующим образом:
import javax.persistence.*;
@Entity
@Table(name = "encryptions")
public class EncryptionTest {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
long id;
String encryptedID;
@PostPersist
void updateEncryptedID(){
this.encryptedID = encrypt(id);
}
private String encrypt(long idToEncrypt){
return "encrypted_" + idToEncrypt ;
}
}
Есть ли лучший способ сделать это, без необходимости повторяться дважды?