Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取根实体及其集合中实体的修订号_Java_Hibernate_Hibernate Envers - Fatal编程技术网

Java 获取根实体及其集合中实体的修订号

Java 获取根实体及其集合中实体的修订号,java,hibernate,hibernate-envers,Java,Hibernate,Hibernate Envers,目前,我正在我们的集成应用程序中试用envers库。每当我执行getRevisions时,我只获取根实体的修订 不过,我希望Envers也能够获得所附集合中实体的修订。我尝试了一些自定义查询,但无法通过连接或其他方式将两者结合在一起 实体如下: 实体:表格 @Audited @Entity(name = "Form") @DisplayProperty(displayProperty1 = "name") public class Form extends IdentityIdEntity<

目前,我正在我们的集成应用程序中试用envers库。每当我执行getRevisions时,我只获取根实体的修订

不过,我希望Envers也能够获得所附集合中实体的修订。我尝试了一些自定义查询,但无法通过连接或其他方式将两者结合在一起

实体如下:

实体:表格

@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>();

}
@已审核
@实体(name=“Form”)
@DisplayProperty(displayProperty1=“名称”)
公共类表单扩展了IdentityIdEntity{
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@映射键(name=“id”)
私有映射元素=新的HashMap();
}
实体: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;

}
@已审核
@实体(name=“FormElement”)
@继承(策略=InheritanceType.JOINED)
@DisplayProperty(displayProperty1=“名称”)
公共抽象类FormElement扩展了TranslateableIdentityIdentity实现
可比{
@列(长度=50,可空=false)
私有字符串名称;
}
服务: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;

    }
公共列表查找版本表单(表单){
AuditReader AuditReader=AuditReaderFactory.get(sessionFactory.getCurrentSession());
logger.info(auditReader.getRevisions(Form.class,Form.getId()).toString());
List resultList=auditReader.createQuery()。用于修改实体(FormElement.class,false,true)
.addProjection(AuditEntity.revisionNumber()).add(AuditEntity.property(“form_id”).eq(form.getId())
.getResultList();
logger.info(结果列表);
返回null;
}
第一个日志返回:

信息:[16,19,20,24]

第二个返回:

信息:[24,25]

但我想得到以下结果:

信息:[16,19,20,24,25]

我使用的是Hibernate 3.5.6,目前无法升级到新版本,因此我正在这个版本中寻找解决方案

欢迎任何帮助,我们将不胜感激

请参见