Envers在AuditReaderFactory查询复合属性上返回QueryException

时间:2018-02-22 10:03:36

标签: hibernate-envers

Envers在Embedded类Audited中找不到复合属性。我有:

@Embeddable
public class Allocation {

   private Long value;

...
}


@Entity
@Table(name = "payment")
@Audited
@AuditTable(value="payment_allocation")
public class PaymentEntity extends AbstractEntity {

   // All propert is not Audited except Allocation
   @Embedded
   @NotAudited
   private Transaction transaction;

   @Audited
   @Embedded
   private Allocation allocation;
...
}

所以当我打电话时:

AuditReaderFactory
            .get(entityManager)
            .createQuery()
            .forRevisionsOfEntity(PaymentEntity.class, true, true)
            .add(AuditEntity.property("allocation.value").eq(1l))
            .getResultList();

我有一个

org.hibernate.QueryException:无法解析属性:分配:.... PaymentEntity_AUD

我只是尝试“价值”,我有同样的例外。

我想要价值为1L的所有付款的历史记录。那么,访问复合属性有什么不同,比如我们构建一个Query?

1 个答案:

答案 0 :(得分:1)

所以,我找到了解决方案:https://hibernate.atlassian.net/browse/HHH-9178

财产的名称不是" allocation.value"但是" allocation_value"。