Necesitas usar pgp_sym_encrypt
para escritura y pgp_sym_decrypt
para leer Hiciste lo contrario.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Debido a que codificar la clave de cifrado en la asignación no parece una muy buena idea, utilizaremos la compatibilidad con PostgreSQL para la configuración definida por el usuario.
Entonces, encrypt.key
se almacena en el postgresql.conf
archivo de configuración:
encrypt.key = 'Wow! So much security.'
El el ejemplo está en GitHub y funciona de maravilla.