Получить номера ревизий корневой сущности и их сущностей в коллекциях

На данный момент я экспериментирую с библиотекой envers в нашем приложении для интеграции. Всякий раз, когда я делаю getRevisions, я получаю только ревизии для корневого объекта.

Однако я ожидаю, что Энверс сможет также получить ревизии для сущностей во вложенных коллекциях. Я попробовал несколько пользовательских запросов, но не смог объединить их вместе с помощью соединения или чего-то еще.

Сущности следующие:

Объект: форма

@Audited
@Entity(name = "Form")
@DisplayProperty(displayProperty1 = "name")
public class Form extends IdentityIdEntity<Integer> {

        @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @MapKey(name = "id")
    private Map<Integer, FormElement> elements = new HashMap<Integer, FormElement>();

}

Объект: FormElement

@Audited
@Entity(name = "FormElement")
@Inheritance(strategy = InheritanceType.JOINED)
@DisplayProperty(displayProperty1 = "name")
public abstract class FormElement extends TranslatableIdentityIdEntity<Integer, FormElementTranslation> implements
        Comparable<FormElement> {

        @Column(length = 50, nullable = false)
    private String name;

}

Служба: FormVersioningService

public List<Number> findVersionsOfForm(Form form) {
        AuditReader auditReader = AuditReaderFactory.get(sessionFactory.getCurrentSession());

        logger.info(auditReader.getRevisions(Form.class, form.getId()).toString());

        List resultList = auditReader.createQuery().forRevisionsOfEntity(FormElement.class, false, true)
                .addProjection(AuditEntity.revisionNumber()).add(AuditEntity.property("form_id").eq(form.getId()))
                .getResultList();
        logger.info(resultList);

        return null;

    }

Первый журнал возвращает:

ИНФОРМАЦИЯ: [16, 19, 20, 24]

Второй возвращает:

ИНФОРМАЦИЯ: [24, 25]

Но я хотел бы получить следующий результат:

ИНФОРМАЦИЯ: [16, 19, 20, 24, 25]

Я использую Hibernate 3.5.6, и на данный момент невозможно перейти на новую версию, поэтому я ищу решение в этой версии.

Любая помощь приветствуется и будет оценена


person pderaaij    schedule 07.10.2011    source источник
comment
см. stackoverflow.com /вопросы/10529982/   -  person Jean    schedule 28.06.2012