/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package uk.ac.ebi.ep.data.domain; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; /** * * @author joseph */ @Entity @Table(name = "RELATED_PROTEINS") @XmlRootElement @NamedQueries({ @NamedQuery(name = "RelatedProteins.findAll", query = "SELECT r FROM RelatedProteins r"), @NamedQuery(name = "RelatedProteins.findByRelProtInternalId", query = "SELECT r FROM RelatedProteins r WHERE r.relProtInternalId = :relProtInternalId") //@NamedQuery(name = "RelatedProteins.findByNamePrefix", query = "SELECT r FROM RelatedProteins r WHERE r.namePrefix = :namePrefix") }) //public class RelatedProteins extends EnzymeAccession implements Serializable { public class RelatedProteins implements Serializable { @Size(max = 4000) @Column(name = "PROTEIN_NAME") private String proteinName; 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) @Column(name = "REL_PROT_INTERNAL_ID") @SequenceGenerator(allocationSize = 1, name = "seqGenerator", sequenceName = "SEQ_REL_PROT_ID") @GeneratedValue(generator = "seqGenerator", strategy = GenerationType.SEQUENCE) private BigDecimal relProtInternalId; @Column(name = "NAME_PREFIX") private String namePrefix; //@OneToMany(mappedBy = "relatedProteinsId", fetch = FetchType.EAGER) @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "relatedProteinsId") //@BatchSize(size = 100) @Fetch(FetchMode.JOIN) //private Set<UniprotEntry> uniprotEntrySet; private List<UniprotEntry> uniprotEntrySet; public RelatedProteins() { } public RelatedProteins(BigDecimal relProtInternalId) { this.relProtInternalId = relProtInternalId; } public BigDecimal getRelProtInternalId() { return relProtInternalId; } public void setRelProtInternalId(BigDecimal relProtInternalId) { this.relProtInternalId = relProtInternalId; } public String getNamePrefix() { return namePrefix; } public void setNamePrefix(String namePrefix) { this.namePrefix = namePrefix; } @XmlTransient public List<UniprotEntry> getUniprotEntrySet() { // List<EnzymeAccession> sortedSpecies = relatedspecies // return uniprotEntrySet.stream() // .sorted(Comparator.comparing(UniprotEntry::humanOnTop).reversed()) // //.sorted(Comparator.comparing(UniprotEntry::getExpEvidenceFlag) // // .reversed()) // .collect(Collectors.toList()); return uniprotEntrySet; } public void setUniprotEntrySet(List<UniprotEntry> uniprotEntrySet) { this.uniprotEntrySet = uniprotEntrySet; } @Override public int hashCode() { int hash = 0; hash += (relProtInternalId != null ? relProtInternalId.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof RelatedProteins)) { return false; } RelatedProteins other = (RelatedProteins) object; return !((this.relProtInternalId == null && other.relProtInternalId != null) || (this.relProtInternalId != null && !this.relProtInternalId.equals(other.relProtInternalId))); } @Override public String toString() { return "uk.ac.ebi.ep.data.domain.RelatedProteins[" + relProtInternalId + " ]"; } public String getProteinName() { return proteinName; } public void setProteinName(String proteinName) { this.proteinName = proteinName; } }