package ee.esutoniagodesu.domain.ac.table; import javax.persistence.*; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; /** * Persist AuditEvent managed by the Spring Boot actuator * * @see org.springframework.boot.actuate.audit.AuditEvent */ @Entity @Table(schema = "ac", name = "persistent_audit_event") public class PersistentAuditEvent { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "event_id") private Integer id; @NotNull @Column(nullable = false) private String principal; @Column(name = "event_date") private LocalDateTime auditEventDate; @Column(name = "event_type") private String auditEventType; @ElementCollection @MapKeyColumn(name = "name") @Column(name = "value") @CollectionTable(schema = "ac", name = "persistent_audit_event_data", joinColumns = @JoinColumn(name = "event_id")) private Map<String, String> data = new HashMap<>(); public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getPrincipal() { return principal; } public void setPrincipal(String principal) { this.principal = principal; } public LocalDateTime getAuditEventDate() { return auditEventDate; } public void setAuditEventDate(LocalDateTime auditEventDate) { this.auditEventDate = auditEventDate; } public String getAuditEventType() { return auditEventType; } public void setAuditEventType(String auditEventType) { this.auditEventType = auditEventType; } public Map<String, String> getData() { return data; } public void setData(Map<String, String> data) { this.data = data; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PersistentAuditEvent that = (PersistentAuditEvent) o; if (id != null ? !id.equals(that.id) : that.id != null) return false; if (principal != null ? !principal.equals(that.principal) : that.principal != null) return false; return !(auditEventType != null ? !auditEventType.equals(that.auditEventType) : that.auditEventType != null); } @Override public int hashCode() { int result = id != null ? id.hashCode() : 0; result = 31 * result + (principal != null ? principal.hashCode() : 0); result = 31 * result + (auditEventType != null ? auditEventType.hashCode() : 0); return result; } @Override public String toString() { return "PersistentAuditEvent{" + "id=" + id + ", principal='" + principal + '\'' + ", auditEventDate=" + auditEventDate + ", auditEventType='" + auditEventType + '\'' + ", data=" + data + '}'; } }