package wifi.model.data; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.IdClass; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name="matricula") @IdClass(MatriculaId.class) public class Matricula { @Id @Column(name="id_curso", insertable=false, updatable=false) private Integer cursoId; @Id @Column(name="id_aluno") private Integer alunoId; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="id_curso") private Curso curso; public Matricula() {} public Integer getCursoId() { return cursoId; } public void setCursoId(Integer cursoId) { this.cursoId = cursoId; } public Integer getAlunoId() { return alunoId; } public void setAlunoId(Integer alunoId) { this.alunoId = alunoId; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((alunoId == null) ? 0 : alunoId.hashCode()); result = prime * result + ((curso == null) ? 0 : curso.hashCode()); result = prime * result + ((cursoId == null) ? 0 : cursoId.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; Matricula other = (Matricula) obj; if (alunoId == null) { if (other.alunoId != null) return false; } else if (!alunoId.equals(other.alunoId)) return false; if (curso == null) { if (other.curso != null) return false; } else if (!curso.equals(other.curso)) return false; if (cursoId == null) { if (other.cursoId != null) return false; } else if (!cursoId.equals(other.cursoId)) return false; return true; } @Override public String toString() { return "Matricula [cursoId=" + cursoId + ", alunoId=" + alunoId + ", curso=" + curso.getNome() + "]"; } }