Java Hibernate envers:如何获取当前已审核的表名?
使用Hibernate Envers,是否可以获取当前已审核表?我从中选取了示例,但添加了一个额外的列Java Hibernate envers:如何获取当前已审核的表名?,java,hibernate,hibernate-envers,auditing,spring-data-envers,Java,Hibernate,Hibernate Envers,Auditing,Spring Data Envers,使用Hibernate Envers,是否可以获取当前已审核表?我从中选取了示例,但添加了一个额外的列tableName: @Entity @RevisionEntity(ExampleListener.class) public class ExampleRevEntity extends DefaultRevisionEntity { private String username; private tableName; ... } 听众: public class
tableName
:
@Entity
@RevisionEntity(ExampleListener.class)
public class ExampleRevEntity extends DefaultRevisionEntity {
private String username;
private tableName;
...
}
听众:
public class ExampleListener implements RevisionListener {
public void newRevision(Object revisionEntity) {
ExampleRevEntity exampleRevEntity = (ExampleRevEntity) revisionEntity;
...
exampleRevEntity.setUsername(...);
exampleRevEntity.setTableName(...); // How to get the current table audited table?
}
}
我找到了这篇老文章,但没有相关的答案。
非常感谢您可以使用,它是修订侦听器的扩展
public class ExampleRevEntityListener
implements EntityTrackingRevisionListener {
@Override
public void entityChanged(java.lang.Class entityClass, java.lang.String entityName,
java.io.Serializable entityId, RevisionType revisionType, java.lang.Object revisionEntity) {
Table tableAnnotation = entityClass..getAnnotation(javax.persistence.Table.class).name();
}
您可以使用,它是RevisionListener
的扩展
public class ExampleRevEntityListener
implements EntityTrackingRevisionListener {
@Override
public void entityChanged(java.lang.Class entityClass, java.lang.String entityName,
java.io.Serializable entityId, RevisionType revisionType, java.lang.Object revisionEntity) {
Table tableAnnotation = entityClass..getAnnotation(javax.persistence.Table.class).name();
}
谢谢,我会试试的。我试过了,但这还不够,因为同一笔交易可能涉及许多实体。使用此解决方案,只取最后一张表。我必须寻找另一个解决方案。应该为所有审计实体调用它。事务中持久化了多少个实体?确保为所有已审核实体调用它,但只捕获最后一个实体。我认为这是一种正常的行为。在我的案例中,涉及3个实体,最后一个实体获胜。谢谢,我会尝试一下。我尝试了一下,但这还不够,因为同一笔交易可能涉及多个实体。使用此解决方案,只取最后一张表。我必须寻找另一个解决方案。应该为所有审计实体调用它。事务中持久化了多少个实体?确保为所有已审核实体调用它,但只捕获最后一个实体。我认为这是一种正常的行为。在我的案例中,涉及3个实体,最后一个实体获胜。