1 package net.java.examples.hmp.model.domain;
\r
3 import java.io.Serializable;
\r
5 import org.hibernate.proxy.HibernateProxy;
\r
7 public abstract class BaseEntity<T extends Serializable> implements IBaseEntity<T>, Serializable {
\r
9 private static final long serialVersionUID = -5828097391861473323L;
\r
15 public int hashCode() {
\r
17 if (getId() == null) {
\r
18 result = super.hashCode();
\r
20 final int prime = 31;
\r
22 result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
\r
28 public boolean equals(final Object obj) {
\r
36 Class<?> otherClass = null;
\r
37 if (obj instanceof HibernateProxy) {
\r
38 otherClass = ((HibernateProxy) obj).getHibernateLazyInitializer().getPersistentClass();
\r
40 otherClass = obj.getClass();
\r
42 if (getClass() != otherClass) {
\r
46 return compareEqualityWithThisInstance((BaseEntity<?>) obj);
\r
49 private boolean compareEqualityWithThisInstance(BaseEntity<?> otherEntity) {
\r
50 if (getId() != null) {
\r
51 return getId().equals(otherEntity.getId());
\r
58 public String toString() {
\r
59 return this.getClass().getName() + "[id=" + getId() + "]";
\r