我正在使用jpa与微服务的hibernate envers。 我试过了
public class MyRevisionEntityListener implements RevisionListener {
@Override
public void newRevision(Object revisionEntity) {
// If you use spring security, you could use SpringSecurityContextHolder.
final UserContext userContext = UserContextHolder.getUserContext();
MyRevisionEntity mre = MyRevisionEntity.class.cast( revisionEntity );
mre.setUserName( userContext.getUserName() );
}
}
它可以更好地保存用户名。但我想将用户名保存为#34;系统"当由另一个微服务更新记录时,以及用户更新时应如上所述保存用户名。如何根据我的要求自定义上述代码
答案 0 :(得分:0)
根据您提供的代码,似乎最合乎逻辑的可能是简单地向您的UserContext
线程局部变量添加一个布尔标志,并简单地在侦听器中检查它。
默认情况下,此标志为false,但对于您的特殊微服务或业务用例,您可以暂时更改该状态,运行您的流程,并在完成后清除该状态,非常类似于Web过滤器链适用于Web应用程序。