0

AB、および の3 つのテーブルがありABます。AB テーブルは関係テーブルです。したがって、AB_AUD表にはabIDPK、および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の監査データを取得するために、シングルと同一視しようとしました。コードに間違いがないか知りたいです。今のところ、次のようなデータを取得するために for ループを実行しています。bIdexception

for (B b : listofB's)
{
    AuditQuery query = auditReader.createQuery()
        .forRevisionsOfEntity(AB.class, false, true)
        .add(AuditEntity.property("b").eq(b))
        .addOrder(AuditEntity.revisionNumber().desc());
}

これはsql queryすべての B に対して実行されますが、これは良い方法ではありません。

4

1 に答える 1

0

プロパティ名がその場合b、なぜbIdクエリで使用しているのですか。b以下のように使用するようにクエリを更新します。

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

これは機能するはずです。

于 2012-10-09T02:00:52.187 に答える