【问题标题】:Hibernate envers - get audited properties of entityHibernate envers - 获取实体的审计属性
【发布时间】:2016-02-10 11:05:08
【问题描述】:

是否有一种简单的(内置)方法可以获取实体的所有经过环境审计的属性?例如

public class SomeClass {
    @Audited
    private String auditedString;

    private String otherString;
    // getter, setter
}

我想知道 envers 中是否有一些实用函数可以返回给定类或实例的 @Audited 属性数组(例如 [auditedString])。

谢谢!

玛丽亚

【问题讨论】:

  • Maria,您在寻找获取审计数据的方法吗?
  • 嗨!不,只是审计属性的名称。也许有一些我没有找到的内置函数。
  • 我也有类似的需求,列出所有修改属性的字段名称,我必须自己做。但是使用 Java 反射很容易列出带有 @Audited 注释的字段名称。请记住,@Audited 可以在类本身上指定。
  • 您好,感谢您的评论。我知道它可以通过反射来完成,但我不想重新发明轮子,我想知道 envers 是否已经在这个方向上提供了一些东西。

标签: java hibernate hibernate-envers


【解决方案1】:

类似下面的方法可以工作,但要理解代码正在访问 Envers 内部,不能保证跨版本移植。

// Get the Envers Service
final EnversService enversService = session.getSessionFactory()
        .getServiceRegistry()
        .getService( EnversService.class );

// Get the entity configuration
EntityConfiguration entityCfg = enversService.getEntityConfigurations()
        .get( auditEntityName );

// Set that contains the properties associated with the audited entity.
Set<PropertyData> properties = entityCfg.getPropertyMapper()
        .getProperties()
        .keySet();

【讨论】:

    猜你喜欢
    • 2015-12-14
    • 2011-07-10
    • 2012-08-10
    • 2012-12-05
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 2019-11-16
    相关资源
    最近更新 更多