я написал свой собственный класс RevisionEntity для хранения дополнительных данных (например, имя пользователя), как показано ниже:Hibernate Envers - заказ RevisionEntity - как получить запись
@Entity
@RevisionEntity(AuditListener.class)
@Table(name = "REVINFO", schema = "history")
@AttributeOverrides({
@AttributeOverride(name = "timestamp", column = @Column(name = "REVTSTMP")),
@AttributeOverride(name = "id", column = @Column(name = "REV")) })
public class AuditEntity extends DefaultRevisionEntity {
private static final long serialVersionUID = -6578236495291540666L;
@Column(name = "USER_ID", nullable = false)
private Long userId;
@Column(name = "USER_NAME")
private String username;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
Я могу видеть, что все строки в базе данных, правильно хранится, таблица REVINFO содержит также имя пользователя.
Я хотел бы запросить базу данных, чтобы получить подробную информацию из моего пользовательского RevisionEntity, например, имя пользователя. Как я могу это сделать? Есть ли поддерживаемый API для его получения?
Я полагаю, что с помощью 'YourEntityClass.class' вы не имеете в виду' AuditEntity.class', правильно? У меня нет 'YourEntityClass.class' или' yourEntityClassId', у меня есть 'versionId'. И IMO должно быть достаточно, чтобы пользователи могли получить общий объект аудита. – bontade
Обновлен со ссылкой на API, который, как вы указали, принимает только тип класса объекта ревизии и номер версии. – Naros
Большое спасибо! Оно работает – bontade