Код: Выделить всё
private List allRevisions() {
AuditReaderFactory.get(entityManager).createQuery()
.forRevisionsOfEntity(MyEntity.class, true, true)
.addOrder(AuditEntity.revisionNumber().asc())
.getResultList();
}
Код: Выделить всё
MYENTITY table
+---------------------------------------------------------------------------+
| ID | MYDATA | CREATEDBY | CREATEDDATE | LASTMODIFIEDBY | LASTMODIFIEDDATE |
+---------------------------------------------------------------------------+
MYENTITY_AUD table
+-----------------------------+
| ID | REV | REVTYPE | MYDATA |
+-----------------------------+
REVINFO table
+-----------------------------+
| REV | REVTSTMP | MODIFIEDBY |
+-----------------------------+
Код: Выделить всё
@Audited
@Entity
public class MyEntity {
private String myData;
@CreatedBy
@NotAudited
private String createBy;
@CreateDate
@NotAudited
private LocalDateTime createdDate;
@LastModifiedBy
@NotAudited
private String lastModifiedBy;
@LastModifiedDate
@NotAudited
private LocalDateTime lastModifiedDate;
}
Код: Выделить всё
@Entity
@Table(name = "REVINFO")
@RevisionEntity(MyRevisionListener.class)
public class MyRevisionEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@RevisionNumber
@Column(name = "REV")
private int id;
@RevisionTimestamp
@Column(name = "REVTSTMP")
private long timestamp;
@Column(name = "MODIFIED_BY")
private String modifiedBy;
...
}
Код: Выделить всё
public class MyRevisionListener implements RevisionListener {
@Override
public void newRevision(Object revisionEntity) {
MyRevisionEntity revision = (MyRevisionEntity) revisionEntity;
revision.setModifiedBy(MyContext.getUserName())
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... it-queries