package app.data.entity; import lombok.Getter; import lombok.Setter; import javax.persistence.*; @Getter @Setter @MappedSuperclass public abstract class AbstractEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Integer id; @Override public int hashCode() { return id != null ? id.hashCode() : super.hashCode(); } @Override public boolean equals(Object obj) { if (!(obj instanceof AbstractEntity)) return false; // null or other class AbstractEntity other = (AbstractEntity) obj; return id != null ? id.equals(other.id) : super.equals(other); } }