0

我正在使用休眠,并且我有一个表,该表由登录 Web 应用程序的各种用户不断更新。我想在该表中添加“上次更新时间”和“上次更新时间”列。对于时间戳位,我可以简单地使用触发器并从 oracle 获取时间/日期,但对于“上次更新时间”,应从应用程序层获取数据。

一种方法是明确识别正在修改该实体的所有场景并添加 entity.setLastUpdatedBy(username) 或类似的东西,但这意味着我必须识别实体可能获得的所有此类场景修改的。

还有其他方法可以实现吗?

ps:我的问题与这个问题惊人地相似,但我找不到答案。问题中提到的链接不起作用。

4

1 回答 1

1

如果您是 Spring 和 JPA 用户,那么正是您所需要的:2.6。审计

大多数应用程序都需要某种形式的可审计性来跟踪实体的创建或修改时间以及由谁创建或修改。

你所要做的就是:

  • 实现Auditable基本上公开修改列的接口

  • 实现简单的Auditor接口让框架知道谁当前登录:

    public interface AuditorAware<T, ID extends Serializable> {
    
        T getCurrentAuditor();
    }
    
于 2012-10-20T12:04:03.460 回答