我创建了一个A,定义名称的实例,带有一组空白的实体B并将其保存到DB中。这是修订版#1。现在我使用以下语句来获取A类的所有初始修订
//Get revisions
A a = auditReader.find(A.class, aId, revisions.get(0));
我收到了异常
无法解析属性:aId_id:.B_AUDIT [从B_AUDIT e__中选择e__,其中e __。aId_id =:a_id和e__.originalId.REV.id< =:revision和REVTYPE!=:delrevisiontype and( e__.REVEND.id>:修订版或e __。REVEND为空)]
以下是我的课程详情
@Table(name = "A")
@Audited
public class A{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
....
@OneToMany(mappedBy = "aId")
@AuditMappedBy(mappedBy = "aId")
private List<B> b;
}
与 B
有@oneToMany关系@Entity
@Table(name = "B")
@Audited
public class B{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private int aId;
...
}
Hibernate Enver版本:5.1.4.Final
感谢您的支持。
答案 0 :(得分:0)
如果我不得不下注,我相信这可能是因为你决定如何在实体@OneToMany
内映射B
关系的对方。您将其直接映射到主键值而不是实体类型本身。
换句话说,Envers可能会期待这种映射:
@Entity
@Table(name = "B")
@Audited
public class B {
// other stuff removed for breavity
@ManyToOne
private A a;
}