PGP_Sym_Encrypt 在休眠状态下不工作,但在使用手动插入查询时工作
PGP_Sym_Encrypt not working in hibernate but works when using the manual insert query
我们正在尝试使用 pgp_sym_encrypt aes 256 加密我们数据库中的列。
当我在我的数据库上 运行 "pgp_sym_encrypt(?,'Netswitch@123','compress-algo=1,cipher-algo=aes256')" 它成功工作并且该字段将被正确插入和加密但是当我使用 Hibernate 时:
我已将以下列转换器添加到我的实体中
@ColumnTransformer(write = "pgp_sym_encrypt(?,'Netswitch@123','compress-algo=1,cipher-algo=aes256')")
@Column(name = "my_field")
String myfield;
持久化到数据库时出现错误
sqlException ERROR: function pgp_sym_encrypt(character varying, unknown, unknown) does not exist 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
所以我尝试添加转换
@ColumnTransformer(write = "pgp_sym_encrypt(cast(? as Text),cast('Netswitch@123' as Text),cast('compress-algo=1,cipher-algo=aes256' as Text))")
还是一样
sqlException ERROR: function pgp_sym_encrypt(text, text, text) 不存在 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
(ps pgcrypto 已添加到数据库并尽我所能 运行 在休眠之外进行查询)
我无法让它工作所以我选择创建一个存储过程来为我进行插入
我们正在尝试使用 pgp_sym_encrypt aes 256 加密我们数据库中的列。
当我在我的数据库上 运行 "pgp_sym_encrypt(?,'Netswitch@123','compress-algo=1,cipher-algo=aes256')" 它成功工作并且该字段将被正确插入和加密但是当我使用 Hibernate 时:
我已将以下列转换器添加到我的实体中
@ColumnTransformer(write = "pgp_sym_encrypt(?,'Netswitch@123','compress-algo=1,cipher-algo=aes256')")
@Column(name = "my_field")
String myfield;
持久化到数据库时出现错误
sqlException ERROR: function pgp_sym_encrypt(character varying, unknown, unknown) does not exist 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
所以我尝试添加转换
@ColumnTransformer(write = "pgp_sym_encrypt(cast(? as Text),cast('Netswitch@123' as Text),cast('compress-algo=1,cipher-algo=aes256' as Text))")
还是一样
sqlException ERROR: function pgp_sym_encrypt(text, text, text) 不存在 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
(ps pgcrypto 已添加到数据库并尽我所能 运行 在休眠之外进行查询)
我无法让它工作所以我选择创建一个存储过程来为我进行插入