を取得するためにどのように私は以下のように、(例えば、ユーザ名用)の追加データを保存するために、私のカスタムRevisionEntityクラスを書いた:休止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はありますか?オブジェクトの配列が含まれています
final AuditReader auditReader = AuditReaderFactory.get(session);
List<?> results = auditReader.createQuery()
.forRevisionsOfEntity(YourEntityClass.class, false, false)
.add(AuditEntity.id().eq(yourEntityClassId))
.getResultList();
返される結果:
「YourEntityClass.class」は、「AuditEntity.class」を意味するものではありません。 私は 'YourEntityClass.class'も' yourEntityClassId'も持っていません。私は 'revisionId'しか持っていません。そして、IMOでは、エンバーが監査エンティティの共通オブジェクトを取得するのに十分なはずです。 – bontade
指定したとおり、リビジョンエンティティのクラスタイプとリビジョン番号のみを使用するAPIを参照して更新されました。 – Naros
ありがとう!できます – bontade