BaseEntity.java
package uk.gov.dhsc.htbhf.dwp.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.UUID;
import javax.persistence.*;
@Data
@NoArgsConstructor
@SuperBuilder
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class BaseEntity {
@Id
@Access(AccessType.PROPERTY)
@EqualsAndHashCode.Include
private UUID id;
/**
* Adding a custom getter for the id so that we can compare an entity before and after its initial
* persistence and they will be the same.
*
* @return The id for the entity.
*/
public UUID getId() {
if (id == null) {
this.id = UUID.randomUUID();
}
return this.id;
}
}