/* * 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 br.edu.ifnmg.GerenciamentoEventos.DomainModel; import br.edu.ifnmg.DomainModel.Entidade; import br.edu.ifnmg.DomainModel.Pessoa; import java.io.Serializable; import java.util.Date; import java.util.Objects; import javax.persistence.Cacheable; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Version; /** * * @author petronio */ @Cacheable(false) @Entity @Table(name="submissoesavaliacoes") public class SubmissaoAvaliacao implements Entidade, Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne private Submissao submissao; @ManyToOne private Pessoa avaliador; @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) QuestionarioResposta resposta; @Enumerated() private SubmissaoStatus status; public SubmissaoAvaliacao() { this.status = SubmissaoStatus.Aprovado; } @Override public Long getId() { return id; } @Override public void setId(Long id) { this.id = id; } public Submissao getSubmissao() { return submissao; } public void setSubmissao(Submissao submissao) { this.submissao = submissao; } public Pessoa getAvaliador() { return avaliador; } public void setAvaliador(Pessoa avaliador) { this.avaliador = avaliador; } public QuestionarioResposta getResposta() { return resposta; } public void setResposta(QuestionarioResposta resposta) { this.resposta = resposta; } public SubmissaoStatus getStatus() { return status; } public void setStatus(SubmissaoStatus status) { this.status = status; } @Override public int hashCode() { int hash = 3; hash = 41 * hash + Objects.hashCode(this.id); hash = 41 * hash + Objects.hashCode(this.submissao); hash = 41 * hash + Objects.hashCode(this.avaliador); return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final SubmissaoAvaliacao other = (SubmissaoAvaliacao) obj; if (!Objects.equals(this.id, other.id)) { return false; } if (!Objects.equals(this.submissao, other.submissao)) { return false; } if (!Objects.equals(this.avaliador, other.avaliador)) { return false; } return true; } @Override public String toString() { return id.toString(); } @ManyToOne(fetch = FetchType.LAZY) private Pessoa criador; @Temporal(TemporalType.TIMESTAMP) private Date dataCriacao; @ManyToOne(fetch = FetchType.LAZY) private Pessoa ultimoAlterador; @Temporal(TemporalType.TIMESTAMP) private Date dataUltimaAlteracao; @Version private Long versao; @Override public Pessoa getCriador() { return criador; } @Override public void setCriador(Pessoa criador) { this.criador = criador; } @Override public Date getDataCriacao() { return dataCriacao; } @Override public void setDataCriacao(Date dataCriacao) { this.dataCriacao = dataCriacao; } @Override public Pessoa getUltimoAlterador() { return ultimoAlterador; } @Override public void setUltimoAlterador(Pessoa ultimoAlterador) { this.ultimoAlterador = ultimoAlterador; } @Override public Date getDataUltimaAlteracao() { return dataUltimaAlteracao; } @Override public void setDataUltimaAlteracao(Date dataUltimaAlteracao) { this.dataUltimaAlteracao = dataUltimaAlteracao; } @Override public Long getVersao() { return versao; } public void setVersao(Long versao) { this.versao = versao; } }