如何在每个会话在休眠中启动时运行固定命令



我使用Hibernate访问SQL Server数据库来开发我们的API。数据库有一些列是加密的。为了能够解密这些加密列,我需要在选择/插入/更新语句之前运行以下语句:

OPEN SYMMETRIC KEY SymKey_MyApp DECRYPTION BY CERTIFICATE Certificate_MyApp

我还需要在会话关闭之前运行以下语句:

CLOSE SYMMETRIC KEY SymKey_MyApp

有没有办法在会话打开或关闭时运行上述语句?我的意思是在一个地方写一些代码。当会话打开时,它将运行第一个语句。当会话关闭时,它将运行第二个语句。我尝试使用 EventListener,但由于 ConcurrentModificationException,我无法运行这些语句。

这样的事情最好在数据源级别解决。不确定您的环境是什么样子的,但是如果您使用HikariCP,则可以配置将在创建连接后执行的connectionInitSql。其他数据源实现可能提供类似的方法来执行此操作。

最新更新