//$
package org.hibernate.test.annotations.manytoone.referencedcolumnname;
import java.io.Serializable;
import java.rmi.server.UID;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;
import javax.persistence.Version;
@MappedSuperclass
public class GenericObject implements Serializable {
protected int id;
protected int version;
protected UID uid = new UID();
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Version
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public void incrementVersion() {
this.version++;
}
public boolean equals(Object other) {
if ( this == other )
return true;
if ( ( other == null ) || !( other.getClass().equals( this.getClass() ) ) )
return false;
GenericObject anObject = (GenericObject) other;
if ( this.id == 0 || anObject.id == 0 )
return false;
return ( this.id == anObject.id );
}
public int hashCode() {
if ( this.id == 0 )
return super.hashCode();
return this.id;
}
@Transient
public UID getUid() {
return uid;
}
public void setUid(UID uid) {
this.uid = uid;
}
}