Java PGP_Sym_Encrypt在hibernate中不起作用,但在使用手动插入查询时起作用

Java PGP_Sym_Encrypt在hibernate中不起作用,但在使用手动插入查询时起作用,java,postgresql,hibernate,encryption,postgresql-9.4,Java,Postgresql,Hibernate,Encryption,Postgresql 9.4,我们正在尝试使用pgp_sym_encrypt aes 256对数据库中的列进行加密 当我运行“pgp_sym_encrypt(?)Netswitch@123“,”compress-algo=1,cipher-algo=aes256')“在我的数据库上,它工作成功,字段将被正确插入和加密,但是当我用户休眠时: 我已将以下columntransformer添加到我的实体中 @ColumnTransformer(write = "pgp_sym_encrypt(?,'Netswitch@1

我们正在尝试使用pgp_sym_encrypt aes 256对数据库中的列进行加密

当我运行“pgp_sym_encrypt(?)Netswitch@123“,”compress-algo=1,cipher-algo=aes256')“在我的数据库上,它工作成功,字段将被正确插入和加密,但是当我用户休眠时:

我已将以下columntransformer添加到我的实体中

@ColumnTransformer(write = "pgp_sym_encrypt(?,'Netswitch@123','compress-algo=1,cipher-algo=aes256')")
@Column(name = "my_field")
String myfield;
当坚持到数据库时,我得到了错误

sqlException错误:函数pgp_sym_encrypt(字符变化、未知、未知)不存在提示:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换。

所以我试着添加了石膏

@ColumnTransformer(write = "pgp_sym_encrypt(cast(? as Text),cast('Netswitch@123' as Text),cast('compress-algo=1,cipher-algo=aes256' as Text))")
还是一样吗

sqlException错误:函数pgp_sym_encrypt(text,text,text)不存在提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。


(ps pgcrypto被添加到数据库中,我可以在hibernate之外运行查询)

我无法让它工作,所以我选择创建一个存储过程,为我执行插入操作

尝试使用
@ColumnTransformer(write=“your_schema.pgp_sym_encrypt(?)Netswitch@123“,”压缩算法=1,密码算法=aes256'))
@Sternk感谢您的回复。不幸的是,它仍然给我同样的错误你的搜索路径在hibernate和psql之间是一样的吗?@jjanes请详细说明一下,我真的不明白搜索路径是什么