我正在使用Hibernate,并且我的表不断地由在Web应用程序中登录的各种用户更新。我想在该表中添加"最后更新"one_answers"最后更新时间"列。对于时间戳位,我可以简单地使用触发器并从Oracle获取时间/日期,但对于"最后更新",应从应用程序层获取数据。
一种要做的方法是明确识别该实体正在修改并添加实体的所有场景。setlastupdyby(用户名)或类似的东西,但这意味着我必须确定所有此类场景实体可能会被修改。
我有其他方法可以实现吗?
ps:我的问题与此问题非常相似,但我找不到答案。问题中提到的链接不起作用。
如果您是弹簧,而JPA用户,spring-data-jpa完全具有您的需求: 2.6。审计:
大多数应用程序都需要某种形式的可审核性来跟踪何时创建或修改实体并由谁进行。
。
您要做的就是:
-
实现
Auditable
接口,该接口基本上公开修改列 -
实现简单的
Auditor
接口,以让框架知道当前正在登录的人:public interface AuditorAware<T, ID extends Serializable> { T getCurrentAuditor(); }