hibernate enverse:如何在关系字段中获取更改的值

时间:2017-07-28 12:04:11

标签: postgresql hibernate spring-boot hibernate-envers

我正在使用hibernate enverse 5.2.10.Final和postgres数据库。

AuditReader auditReader = AuditReaderFactory.get(entityManager);
        String newValue = (String) auditReader.createQuery()
                .forEntitiesAtRevision(Vehicle.class, 2203869)
                .traverseRelation("vehicleType", JoinType.INNER).addProjection(AuditEntity.property("id")).up()
                .add(AuditEntity.property("vehicleType").hasChanged())              
                .add(AuditEntity.id().eq(2203422l))
                .add(AuditEntity.revisionNumber().eq(2203869)).getSingleResult();

车辆表与vehicleType有多对一的关系。 如何利用逆向查询得到车辆实体车型属性的变化。 在这里我没有找到结果发现错误。 无法通过Audientity.property获得价值(" vehicleType").. hasChanged() 他们找不到错误属性。

1 个答案:

答案 0 :(得分:0)

auditReader.createQuery()
  .forEntitiesAtRevision( Vehicle.class, revisionNumber )                                           
  .traverseRelation( propertyname, JoinType.LEFT )
  .addProjection( AuditEntity.property("id") ).up()
  .add( AuditEntity.property( propertyname ).hasChanged() )
  .add( AuditEntity.id().eq( VehicleId ) )                                  
  .getSingleResult()