package org.akaza.openclinica.domain; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.MappedSuperclass; import javax.persistence.Version; @MappedSuperclass public abstract class AbstractMutableDomainObject implements MutableDomainObject { @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((version == null) ? 0 : version.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; AbstractMutableDomainObject other = (AbstractMutableDomainObject) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; if (version == null) { if (other.version != null) return false; } else if (!version.equals(other.version)) return false; return true; } private Integer id; private Integer version; @Id @GeneratedValue(generator = "id-generator") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Version public Integer getVersion() { return version; } public void setVersion(Integer version) { this.version = version; } }