package uk.ac.ebi.ep.data.domain;
import java.io.Serializable;
import java.math.BigInteger;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author Joseph <joseph@ebi.ac.uk>
*/
@Entity
@Table(name = "ENTRY_TO_GENE_MAPPING")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "EntryToGeneMapping.findAll", query = "SELECT e FROM EntryToGeneMapping e"),
@NamedQuery(name = "EntryToGeneMapping.findByGeneInternalId", query = "SELECT e FROM EntryToGeneMapping e WHERE e.geneInternalId = :geneInternalId"),
@NamedQuery(name = "EntryToGeneMapping.findByGeneName", query = "SELECT e FROM EntryToGeneMapping e WHERE e.geneName = :geneName"),
@NamedQuery(name = "EntryToGeneMapping.findByUniprotGeneId", query = "SELECT e FROM EntryToGeneMapping e WHERE e.uniprotGeneId = :uniprotGeneId")})
public class EntryToGeneMapping implements Serializable {
private static final long serialVersionUID = 1L;
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
@Id
@Basic(optional = false)
@NotNull
@Column(name = "GENE_INTERNAL_ID")
private Long geneInternalId;
@Size(max = 60)
@Column(name = "GENE_NAME")
private String geneName;
@Column(name = "UNIPROT_GENE_ID")
private BigInteger uniprotGeneId;
@JoinColumn(name = "UNIPROT_ACCESSION", referencedColumnName = "ACCESSION")
//@ManyToOne
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private UniprotEntry uniprotAccession;
public EntryToGeneMapping() {
}
public EntryToGeneMapping(Long geneInternalId) {
this.geneInternalId = geneInternalId;
}
public Long getGeneInternalId() {
return geneInternalId;
}
public void setGeneInternalId(Long geneInternalId) {
this.geneInternalId = geneInternalId;
}
public String getGeneName() {
return geneName;
}
public void setGeneName(String geneName) {
this.geneName = geneName;
}
public BigInteger getUniprotGeneId() {
return uniprotGeneId;
}
public void setUniprotGeneId(BigInteger uniprotGeneId) {
this.uniprotGeneId = uniprotGeneId;
}
public UniprotEntry getUniprotAccession() {
return uniprotAccession;
}
public void setUniprotAccession(UniprotEntry uniprotAccession) {
this.uniprotAccession = uniprotAccession;
}
@Override
public int hashCode() {
int hash = 0;
hash += (geneInternalId != null ? geneInternalId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof EntryToGeneMapping)) {
return false;
}
EntryToGeneMapping other = (EntryToGeneMapping) object;
return !((this.geneInternalId == null && other.geneInternalId != null) || (this.geneInternalId != null && !this.geneInternalId.equals(other.geneInternalId)));
}
@Override
public String toString() {
return "uk.ac.ebi.ep.data.domain.EntryToGeneMapping[ geneInternalId=" + geneInternalId + " ]";
}
}