gpt4 book ai didi

java - Hibernate - Envers - 多个审计目标

转载 作者:行者123 更新时间:2023-11-30 11:58:58 26 4
gpt4 key购买 nike

我已经在使用 Hibernate Envers 来审计用户通过 UI 更新的实体;但是,我也有在后台运行的异步作业,我也想使用 Envers 来审核这些作业。现在,对于 UI,我跟踪哪个 HttpRequest 进行了更改,它为我提供了日期、用户、 session 等。对于后台作业,我想跟踪作业运行的日期以及修改它的确切作业(工作类别)。

是否可以设置 2 个审计实体,1 个用于 UI,1 个用于系统更改?

沃尔特

最佳答案

我还没有对此进行测试,但我只是在执行以下操作:

@RevisionListener(SystemRevisionListener.class)
@Entity
public class SystemRevision extends AbstractRevision
{
@Column(nullable = false, updatable = false)
protected QuartzTriggerHandle job;

@Column(nullable = false, updatable = false)
protected Class jobClass;

...
}



@RevisionListener(WebRevisionListener.class)
@Entity
public class WebRevision extends AbstractRevision
{
@ManyToOne(optional = false)
@JoinColumn(nullable = false, updatable = false)
protected HttpRequest httpRequest;

...
}

然后,在每个监听器中,我都会做任何我需要做的事情来设置这些属性。我现在应该能够跟踪一个实体是如何被修改的,如果用户做了更改(以及它绑定(bind)到什么请求),或者如果系统更改了实体,什么工作负责更改。我会在 SystemRevision 中存储比这更多的属性,很可能是参数和方法名称。

关于java - Hibernate - Envers - 多个审计目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2813698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com