微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PGP_Sym_Encrypt 在休眠状态下不起作用,但在使用手动插入查询时起作用

如何解决PGP_Sym_Encrypt 在休眠状态下不起作用,但在使用手动插入查询时起作用

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

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

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

@ColumnTransformer(write = "pgp_sym_encrypt(?,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 被添加数据库中,并且我可以在休眠之外运行查询

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。