package nu.xss.jpa.entity; import javax.persistence.MappedSuperclass; @MappedSuperclass public abstract class AbstractEntity implements TypedEntity { private static final long serialVersionUID = 1L; public AbstractEntity() { } public AbstractEntity(K id) { this.setId(id); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (this.getId() == null ? 0 : this.getId().hashCode()); return result; } @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (this.getClass() != obj.getClass()) { return false; } final AbstractEntity other = (AbstractEntity) obj; if (this.getId() == null) { if (other.getId() != null) { return false; } } else if (!this.getId().equals(other.getId())) { return false; } return true; } }