I have a base class for persisted entities like this:
@EntityListeners(AuditListener.class)
@MappedSuperclass
public abstract class BaseEntity {
@Id
private String id;
private Instant createdAt;
private String createdBy;
private Instant modifiedAt;
private String modifiedBy;
...
Run Code Online (Sandbox Code Playgroud)
A listener to fill the created/modified fields on persiste/update:
public class AuditListener {
@PrePersist
private void onCreate(BaseEntity entity) {
entity.setCreatedAt(Instant.now());
entity.setCreatedBy(getIdUserLogged());
}
@PreUpdate
private void onUpdate(BaseEntity entity) {
entity.setModifiedAt(Instant.now());
entity.setModifiedBy(getIdUserLogged());
}
}
Run Code Online (Sandbox Code Playgroud)
For updates made by query the listener would now work and I've manually set …