首页 文章

如何使用Envers审核Hibernate读取?

提问于
浏览
1

我一直致力于应用程序审计,并已成功连接Hibernate Envers 4.3.11以捕获创建,更新和删除,但我找不到任何有关实体审计读取的文档 .

这可能与Envers一起使用还是最好依赖log4j或类似的?

2 回答

  • 0

    我相信它不可能 . 我们有类似的用例,我们使用拦截器来生成我们服务的审计记录 .

  • 0

    是的,Hibernate Envers可以审核实体的读取 . 以下是从第一次修订的审计表中读取记录的示例 .

    /*Audit Reader*/
    
    public AuditReader getAuditReader() {
            return  AuditReaderFactory.get(getCrntSession());
        }
    
    /*The method to read a record from an entity*/
    
    Integer revisionNumber = (Integer) getAuditReader().createQuery()
                    .forRevisionsOfEntity(Employee.class, false, true)
                    .addProjection(AuditEntity.revisionNumber().min())
                    .getSingleResult();
    
            AuditReader reader = getAuditReader();
            Employee emp=reader.findRevision(Employee.class, (Number)revisionNumber);
    
    /* and if Employee has an createdDate record , we can read it using below*/:
           System.out.println(emp.getCreatedDate());
    

相关问题