J'ai écrit ma classe RevisionEntity personnalisée pour stocker des données supplémentaires (par exemple le nom d'utilisateur), comme ci-dessous:Hibernate Envers - RevisionEntity personnalisé - comment obtenir dossier
@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;
}
}
je peux voir que toutes les lignes de base de données sont correctement stocké, la table REVINFO contient également le nom d'utilisateur.
Je voudrais interroger la base de données pour obtenir des informations détaillées de mon RevisionEntity personnalisé, comme nom d'utilisateur. Comment puis-je le faire? Existe-t-il une API prise en charge pour l'obtenir?
Je suppose que par 'YourEntityClass.class' vous ne voulez pas dire auditEntity.class', non? Je n'ai pas 'YourEntityClass.class' ni' yourEntityClassId', je n'ai que 'revisionId'. Et l'OMI devrait suffire pour obtenir l'objet commun d'audit. – bontade
Mise à jour en référence à une API qui prend uniquement le type de classe d'entité de révision et le numéro de révision, comme vous l'avez indiqué. – Naros
Merci beaucoup! Ça marche – bontade