<div dir="ltr">Hello,<div>We would like to keep trace of who change something into our database.</div><div>We have already activate Envers auditing to keep track of the different version of our record.<br>However when I do the log I would like to specify the revision of the entity when it was changed. I have added an EventListeners on the Entity that will call the logger after any change on the entity but can&#39;t find a way to get the version.</div><div>I have tried to use the @Version annotation but this one has different value than the REV column in the audit table.<br>Here is some part of the code:</div><div><div><i><font color="#6aa84f" size="1">@Entity(name = &quot;Rules&quot;)</font></i></div><div><i><font color="#6aa84f" size="1"><div>@EntityListeners(AuditListener.class)</div><div><i style="font-size:small;color:rgb(34,34,34)"><font color="#6aa84f" size="1">@Audited(withModifiedFlag = true)</font></i><br></div></font></i></div><div><i><font color="#6aa84f" size="1">public class Rule  {</font></i></div><div><i><font color="#6aa84f" size="1">        </font></i><font color="#6aa84f" size="1"><i>@Id</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@GeneratedValue(strategy = GenerationType.IDENTITY)</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Column(name = &quot;Id&quot;)</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private Integer id;</i></font></div><div><font color="#6aa84f" size="1"><i><br></i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@XmlTransient</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>public Integer getId() {</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>return id;</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>}</i></font></div><div><font color="#6aa84f" size="1"><i><br></i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>public void setId(Integer id) {</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">                </span><a href="http://this.id">this.id</a> = id;</i></font></div><div><font color="#6aa84f" size="1"><i><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>}</i></font></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private String gufid;</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@NotNull</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Column(name = &quot;Code&quot;, nullable = false, columnDefinition = &quot;NVARCHAR(55)&quot;)</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private String code;</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@NotNull</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Lob</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Column(name = &quot;Expression&quot;, nullable = false, columnDefinition = &quot;NVARCHAR(MAX)&quot;)</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private String expression;</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@NotNull</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Column(name = &quot;RuleType&quot;, nullable = false, columnDefinition = &quot;VARCHAR(20)&quot;)</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Enumerated(EnumType.STRING)</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private RuleType ruleType;</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@Column(name = &quot;Description&quot;, columnDefinition = &quot;NVARCHAR(255)&quot;)</font></i></div><div><i><font color="#6aa84f" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private String description;</font></i></div><div><i><font color="#6aa84f" size="1"><br></font></i></div><div><i><font color="#6aa84f" size="1">    @Version</font></i></div><div><i><font color="#6aa84f" size="1">    private Long version;</font></i></div></div><div><div><i><font color="#6aa84f" size="1">public Long getVersion() {</font></i></div><div><i><font color="#6aa84f" size="1">        return version;</font></i></div><div><i><font color="#6aa84f" size="1">    }</font></i></div><div><i><font color="#6aa84f" size="1"><br></font></i></div><div><i><font color="#6aa84f" size="1">    public void setVersion(Long version) {</font></i></div><div><i><font color="#6aa84f" size="1">        this.version = version;</font></i></div><div><i><font color="#6aa84f" size="1">    }</font></i></div></div><div><i><font color="#6aa84f" size="1"><br></font></i></div><div><font color="#6aa84f" size="1"><i><div>public class AuditListener {</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>@PostPersist</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>private void afterCreate(Rule rule) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>logData(&quot;CREATE&quot;, rule);</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>}</div><div><div>       private void logData(String action, Rule rule) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>AuditUserData auditUserData = getAuditUserData();</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>AuditData auditData = new AuditData();</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>auditData.setUsername(auditUserData.getUsername());</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>auditData.setAction(action);</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>auditData.setApplication(auditUserData.getApplication());</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>auditData.setResource(&quot;uuid: &quot; + rule.getUuid() + &quot;, version: &quot;+rule.getVersion());</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>auditData.setTimestamp(new Date().getTime());</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>AuditLogger.log(auditData);</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>}</div></div><div><br></div></i></font></div><div><font size="1" color="#000000">Best Regards,</font></div><div><font size="1" color="#000000">Claude</font></div></div>