Список последних версий каждого объекта с конвертами

Я пытаюсь получить последнюю версию всех объектов, которые не были удалены. Сделать это в SQL очень просто с помощью подзапроса :

select * from article_aud aud1
where rev in
 (select max(rev) from article_aud aud2
  where aud1.id = aud2.id)
and revtype < 2

. Но я понятия не имею, как это реализовать через envers API. Я начал с AuditReader, но не нашел способа выбрать отдельные объекты

public List<Object[]> findLatestArticleRevisions(){
    List<Object[]> results = (List<Object[]>) getJpaTemplate().execute(new AuditReaderCallback() {
        @Override
        public Object doInAuditReader(AuditReader auditReader) {
            return auditReader.createQuery().forRevisionsOfEntity(Article.class, false, false)
                // TODO select distinct on entities
               .addOrder(new PropertyAuditOrder(new RevisionNumberPropertyName(), false))
               .getResultList();
        }
    });

    return results;
}

. Важно:Я хочу сделать это за один или по крайней мере два запроса, потому что у меня есть много статей (объектов )со многими ревизиями.

Большое спасибо!

8
задан powerMicha 31 July 2012 в 14:38
поделиться