Я пытался регистрировать дополнительные пользовательские данные с изменениями, созданными Envers. Я смог сделать это с помощью RevisionEntity и RevisionListener, но я не могу получить данные, которые регистрируются. Я попытался следующий кодКак запросить RevisionEntity в hibernate envers
AuditQuery auditQuery = AuditReaderFactory
.get(factory.getCurrentSession()).createQuery()
.forRevisionsOfEntity(Currency.class, false, false)
.add(AuditEntity.id().eq("ENV_US"));
List<Object[]> l = auditQuery.getResultList();
Это возвратило список В массиве объекта первый элемент является ревизионная Во-вторых, из RevisionEntity и третий имеет RevisionType, но значения в объекте RevisionEntity все нуль.
Вот POJO для RevisionEntity
@Entity
@Table(name = "REVINFO")
@RevisionEntity(RevListener.class)
public class ExampleRevEntity {
@Id
@GeneratedValue
@RevisionNumber
@Column(name = "REV")
private int rev;
@RevisionTimestamp
@Column(name = "REVTSTMP")
private long revtstmp;
@Column(name = "USERID")
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
Пожалуйста, дайте мне знать, если я делаю любую вещь неправильно.
Да, версии были созданы в базе данных, одна с revetype ADD, а другая для UPDATE. И в списке запросов также я получил правильные объекты revtype, но объекты RevisionEntity были все blanck (так как в UserId было null, а rev и revtstmp равно 0). –
Понятия не имею, может быть ошибка, но трудно сказать без отладки. – adamw