【发布时间】:2012-10-09 00:58:11
【问题描述】:
我有三个表A、B 和AB。 AB表是关系表。所以AB_AUD 表有abID 作为PK,aId,bID,修订信息。
我有“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 的审计数据,该exception 抛出相同的exception。
我想知道代码中是否有任何错误。现在我正在做一个 for 循环来检索这样的数据:
for (B b : listofB's)
{
AuditQuery query = auditReader.createQuery()
.forRevisionsOfEntity(AB.class, false, true)
.add(AuditEntity.property("b").eq(b))
.addOrder(AuditEntity.revisionNumber().desc());
}
每个 B 都运行 sql query,这不是一个好方法。
【问题讨论】:
标签: hibernate hibernate-envers