2017-07-28 36 views
0

我正在使用休眠狀態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() 找不到它們的錯誤屬性。

回答

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()