/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package empresa.negocio; import com.tecgraf.dao.IEntityDAOJPA; import java.io.Serializable; import java.util.Collection; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * * @author s092 */ @Entity @Table(name = "empregado") @NamedQueries({@NamedQuery(name = "Empregado.findById", query = "SELECT e FROM Empregado e WHERE e.id = :id"), @NamedQuery(name = "Empregado.findByMatricula", query = "SELECT e FROM Empregado e WHERE e.matricula = :matricula"), @NamedQuery(name = "Empregado.findByNome", query = "SELECT e FROM Empregado e WHERE e.nome = :nome"), @NamedQuery(name = "Empregado.findBySalario", query = "SELECT e FROM Empregado e WHERE e.salario = :salario"), @NamedQuery(name = "Empregado.findByFuncao", query = "SELECT e FROM Empregado e WHERE e.funcao = :funcao"), @NamedQuery(name = "Empregado.findByDataadmissao", query = "SELECT e FROM Empregado e WHERE e.dataadmissao = :dataadmissao"), @NamedQuery(name = "Empregado.findByQuantidadehorastrabalhadas", query = "SELECT e FROM Empregado e WHERE e.quantidadehorastrabalhadas = :quantidadehorastrabalhadas")}) public class Empregado implements IEntityDAOJPA, Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "id", nullable = false) private Integer id; @Column(name = "matricula", nullable = false) private String matricula; @Column(name = "nome") private String nome; @Column(name = "salario") private Double salario; @Column(name = "funcao") private String funcao; @Column(name = "dataadmissao") @Temporal(TemporalType.TIMESTAMP) private Date dataadmissao; @Column(name = "quantidadehorastrabalhadas") private Integer quantidadehorastrabalhadas; @JoinTable(name = "projetoempregado", joinColumns = {@JoinColumn(name = "idempregado", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "idprojeto", referencedColumnName = "id")}) @ManyToMany private Collection idprojetoCollection; @OneToMany(cascade = CascadeType.ALL, mappedBy = "idempregado") private Collection dependenteCollection; @JoinColumn(name = "iddepartamento", referencedColumnName = "id") @ManyToOne private Departamento iddepartamento; @OneToMany(mappedBy = "gerente") private Collection empregadoCollection; @JoinColumn(name = "gerente", referencedColumnName = "id") @ManyToOne private Empregado gerente; public Empregado() { } public Empregado( Integer id ) { this.id = id; } public Empregado( Integer id, String matricula ) { this.id = id; this.matricula = matricula; } public Integer getId() { return id; } public void setId( Integer id ) { this.id = id; } public String getMatricula() { return matricula; } public void setMatricula( String matricula ) { this.matricula = matricula; } public String getNome() { return nome; } public void setNome( String nome ) { this.nome = nome; } public Double getSalario() { return salario; } public void setSalario( Double salario ) { this.salario = salario; } public String getFuncao() { return funcao; } public void setFuncao( String funcao ) { this.funcao = funcao; } public Date getDataadmissao() { return dataadmissao; } public void setDataadmissao( Date dataadmissao ) { this.dataadmissao = dataadmissao; } public Integer getQuantidadehorastrabalhadas() { return quantidadehorastrabalhadas; } public void setQuantidadehorastrabalhadas( Integer quantidadehorastrabalhadas ) { this.quantidadehorastrabalhadas = quantidadehorastrabalhadas; } public Collection getIdprojetoCollection() { return idprojetoCollection; } public void setIdprojetoCollection( Collection idprojetoCollection ) { this.idprojetoCollection = idprojetoCollection; } public Collection getDependenteCollection() { return dependenteCollection; } public void setDependenteCollection( Collection dependenteCollection ) { this.dependenteCollection = dependenteCollection; } public Departamento getIddepartamento() { return iddepartamento; } public void setIddepartamento( Departamento iddepartamento ) { this.iddepartamento = iddepartamento; } public Collection getEmpregadoCollection() { return empregadoCollection; } public void setEmpregadoCollection( Collection empregadoCollection ) { this.empregadoCollection = empregadoCollection; } public Empregado getGerente() { return gerente; } public void setGerente( Empregado gerente ) { this.gerente = gerente; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.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 Empregado) ) { return false; } Empregado other = (Empregado)object; if( (this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id)) ) { return false; } return true; } @Override public String toString() { return "empresa.negocio.Empregado["+ id + " " + nome.trim() + "]: " + " admissao: " + dataadmissao + " numero: " + matricula + " " + " func: " + funcao + " " + " sal: " + salario + " " + " gerente: " + gerente + " " + " - dependentes: " + dependenteCollection; } }