Hibernate审计find和createQuery之间的区别

时间:2016-04-18 12:39:26

标签: java hibernate audit hibernate-envers

我遇到了被审核实体的问题。 几年以来使用的方法几周后就不起作用了。

例如,我们得到了两个类

@Autited
class A {
   B object;
}

@Audited
class B {
   Integer id;
}

我们使用了方法

@Override
public E getRevisionByPkAndRevisionNumber(Long pk, Integer revisionNumber) {
    final AuditQuery q =getAuditReader().createQuery().forEntitiesAtRevision(persistableEntityClass, revisionNumber).add(AuditEntity.id().eq(pk));
    return (E) q.getSingleResult();
}

当我尝试获取实体A的修订版时,我得到了它但不是这个属性对象。 一个EntityNotFound被抛出然而它存在! 但是当我使用方法时

AuditReaderFactory.get(getEntityManager()).find(clazz, pk, revNumber);

一切正常,我得到了对象的所有属性......

find方法和createQuery有什么区别?

0 个答案:

没有答案