Dor*_*old 7 java postgresql spring jdbc spring-jdbc
我有一个Spring Boot webapp连接到Postgres 9.6数据库.
我使用Spring JdbcTemplate来执行SQL语句.我的数据库中的每个表都有INSERT,CREATE和DELETE语句的触发器.这些触发器将受影响的行复制到历史记录表中.
我希望触发器还保存进行更改的用户的应用程序用户ID.
根据/sf/answers/922107511/,我可以通过让应用程序在每个事务开始时将当前用户id插入临时表并从临时表中读取触发器来实现我的目标.
在其他几个地方提到的类似方法是执行:
SET LOCAL application_name = "my_application_user",然后读取application_name触发器内部.同样,这必须在每笔交易开始时完成.
我正在寻找方法,它与业务代码正交(我不希望每个DAO显式设置用户ID),挂钩到每个事务的开始,以便在之前的任何其他语句之前运行特定的SQL语句相同的交易.
我需要这个用于隐式事务(单个调用JdbcTemplate)和使用Spring的@Transactional注释以声明方式划分的事务.
您可以用来@EntityListeners侦听应用程序上下文中实体的更改,然后收集任何信息(实体值、身份验证用户等),然后插入到历史记录表中。您可以在此处遵循示例: http: //www.baeldung.com/database-auditing-jpa
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |