package org.gmod.schema.mapped; import static javax.persistence.GenerationType.SEQUENCE; import org.apache.log4j.Logger; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; @Entity @Table(name="feature_dbxref") public class FeatureDbXRef implements Serializable { private static final Logger logger = Logger.getLogger(FeatureDbXRef.class); // Fields @SequenceGenerator(name="generator", sequenceName="feature_dbxref_feature_dbxref_id_seq", allocationSize=1) @Id @GeneratedValue(strategy=SEQUENCE, generator="generator") @Column(name="feature_dbxref_id", unique=false, nullable=false, insertable=true, updatable=true) private int featureDbXRefId; @ManyToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER) @JoinColumn(name="dbxref_id", unique=false, nullable=false, insertable=true, updatable=true) private DbXRef dbXRef; @ManyToOne(cascade={}, fetch=FetchType.LAZY) @JoinColumn(name="feature_id", unique=false, nullable=false, insertable=true, updatable=true) private Feature feature; @Column(name="is_current", unique=false, nullable=false, insertable=true, updatable=true) private boolean current = true; // Constructors /** default constructor */ FeatureDbXRef() { logger.trace("Constructing FeatureDbXRef: " + this); } /** full constructor */ public FeatureDbXRef(DbXRef dbXRef, Feature feature, boolean current) { if (dbXRef == null) { throw new NullPointerException("dbxref is null in FeatureDbXRef constructor"); } this.dbXRef = dbXRef; this.feature = feature; this.current = current; logger.trace(String.format("Constructing FeatureDbXRef(%s, %s, %s): %s", dbXRef, feature, current, this)); } // Property accessors public int getFeatureDbXRefId() { return this.featureDbXRefId; } public DbXRef getDbXRef() { return this.dbXRef; } void setDbXRef(DbXRef dbXRef) { this.dbXRef = dbXRef; } public Feature getFeature() { return this.feature; } void setFeature(Feature feature) { this.feature = feature; } public boolean isCurrent() { return this.current; } public void setCurrent(boolean current) { this.current = current; } // hashCode and equals were defined by Eclipse using the fields feature and dbXRef @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((dbXRef == null) ? 0 : dbXRef.hashCode()); result = prime * result + ((feature == null) ? 0 : feature.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; FeatureDbXRef other = (FeatureDbXRef) obj; if (dbXRef == null) { if (other.dbXRef != null) return false; } else if (!dbXRef.equals(other.dbXRef)) return false; if (feature == null) { if (other.feature != null) return false; } else if (!feature.equals(other.feature)) return false; return true; } }