Hibernate Envers:使用''在查询中

时间:2012-10-09 00:58:11

标签: hibernate hibernate-envers

我有三个表ABAB。 AB表是一个关系表。因此AB_AUD表格为abID为PK,aIdbID为修订版信息。 我有'bIds'列表,想要使用列表从AB_AUD表中检索审计数据。我的代码块是

AuditQuery query = auditReader.createQuery()
    .forRevisionsOfEntity(AB.class, false, true)
    .add(AuditEntity.property("bId").in(bIds))
    .addOrder(AuditEntity.revisionNumber().desc());

抛出异常:无法解析bId的属性。即使我尝试与单bId等同,也可以检索投放相同bId的{​​{1}}的审核数据。 我想知道代码中是否有任何错误。现在我正在做一个for循环来检索这样的数据:

exception

每个B运行for (B b : listofB's) { AuditQuery query = auditReader.createQuery() .forRevisionsOfEntity(AB.class, false, true) .add(AuditEntity.property("b").eq(b)) .addOrder(AuditEntity.revisionNumber().desc()); } ,这不是一个好方法。

1 个答案:

答案 0 :(得分:0)

如果您的媒体资源名称为b,那么您为什么在查询中使用bId。更新查询以使用b,如下所示:

            .forRevisionsOfEntity(AB.class, false, true)
             .add(AuditEntity.property("b").in(istofB's))
             .addOrder(AuditEntity.revisionNumber().desc());

这应该有用。