如何通过hibernate en verse查询自定义返回表快照

时间:2017-07-22 03:50:17

标签: spring-data hibernate-envers

我在示例代码下面尝试使用hibernate。

List personsAtAddress = getAuditReader().createQuery()
  .forRevisionsOfEntity(MyEntity.class, false, true)

以jsen格式输出如下

[ {"id"=1,
   "name" ="ssss"
  },{
     "revid" =1,
      "username" ="kkk"
  },
MOD
]

但我的预期输出是

["my entity" {"id"=1,
   "name" ="ssss"
  },
 "custom Revision Tale"{
     "revid" =1,
      "username" ="kkk"
  },
"modflag"="MOD"
]

如何通过hibernate enverse中的审计查询获得此结果

1 个答案:

答案 0 :(得分:0)

您基本上需要使用输出期望获得结果的键将Envers API中返回的Object[]数组封送到Map

final List<Map<String,Object> output = new ArrayList<>();
final List<Object[]> results = // this is the list of object arrays from Envers

for ( Object[] row : results ) {
  final Map<String, Object> map = new HashMap<>();
  map.put( "my entity", row[0] );
  map.put( "custom Revision Tale", row[1] );
  map.put( "modflag", row[2] );
  output.add( map );
}