package org.brixcms.plugin.usermgmt; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MappedSuperclass; import javax.persistence.Transient; import javax.persistence.Version; import org.brixcms.plugin.jpa.Persistable; /** * @author dan.simko@gmail.com */ @MappedSuperclass @SuppressWarnings("serial") public abstract class BaseEntity implements Persistable<Long> { private Long id; private int version; @Id @Override @GeneratedValue(strategy = GenerationType.IDENTITY) public Long getId() { return id; } @Override @Transient public boolean isNew() { return getId() == null; } @Version protected int getVersion() { return version; } public void setId(Long id) { this.id = id; } public void setVersion(int version) { this.version = version; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.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; BaseEntity other = (BaseEntity) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } }