我的项目正在从Grails迁移到java,所以我将审计数据放在一个由Grails Audit插件推送的表中,现在我正在使用Java envers在Java中进行审计。我有以下疑虑:
->如果需要手动从单表推送数据到不同的Audit表( Java版本),如何才能手动生成历史数据的修订表主键,而不会与Java注释生成的主键冲突?对于新条目,我生成主键,如下所示:
@Id
@GeneratedValue
@RevisionNumber
@Column(name = "ID") @NotNull
private Long revisionId;->有没有其他方法可以将数据从单个审计表推送到独立的审计表(在java中),而不是手动执行?
请让我知道这件事。
谢谢。
发布于 2017-02-25 11:26:05
Envers应该在Oracle上创建名为REVISION_LISTENER的序列。
因此,您应该能够使用Oracle的语法SELECT REVISION_LISTENER.NEXTVAL来获得下一个序列值,并在您的审计表和修订实体信息表的REV字段中使用它。
这只适用于DefaultAuditStrategy。
如果您打算使用ValidityAuditStrategy,为了能够填充相关字段,您必须了解Envers的内部结构。如果你正在使用这个策略,请让我知道,我会添加更多具体的细节,但它非常复杂和乏味。
https://stackoverflow.com/questions/42406111
复制相似问题