Hibernate在ColumnTransformer中插入costant

时间:2019-01-18 09:24:36

标签: java hibernate configuration

出于安全原因,我必须对postgres表的某些列进行加密。

我使用了@ColumnTransfomer批注,但是我需要管理三个不同的密码(dev,test,prod)。

在春季,我已经使用正确的hibernate.cfg.xml引用设置了一个bean,因此当我必须部署时,我只需要更改对bean的引用即可连接正确的配置,并且我需要一些东西类似于找回密码

在我的实体中,我具有当前注释

@ColumnTransformer(
            read = "pgp_sym_decrypt(field1::bytea, 'MYKEY','cipher-algo=aes256')",
            write = "pgp_sym_encrypt(?, 'MYKEY','cipher-algo=aes256')")

有没有办法插入一个任意值而不是MYKEY? 我尝试过这种方式,但是收到错误消息

   private final static String key = ((AppConfig)ContextLoader.getCurrentWebApplicationContext().getBean("app")).getDb().getPassword(); 
   ...
   @ColumnTransformer(
            read = "pgp_sym_decrypt(email::bytea, "+key+",'cipher-algo=aes256')",
            write = "pgp_sym_encrypt(?, "+key+",'cipher-algo=aes256')")

0 个答案:

没有答案