Caros:
Estou com um problema aqui e não estou conseguindo resolver, preciso de uma ajuda. Tenho um relacionamento de duas tabelas, Professor e RefHorTur. Em Professor, estarão os dados do Professor. Em RefHorTur os dados da(s) turma(s) que o professor ministra aulas.
Minha classe RefHorTur precisa de uma chave composta, e está mapeada assim, no PrimaryKey:
@Embeddable
public class RefHorTurPK implements Serializable {
@Column(name = "Area", nullable = false)
private String area;
@Column(name = "Professor", nullable = false)
private String professor;
//getters & setters
}
e assim, na classe entidade:
@Entity
@Table ( name = "RefHorTur" )
public class RefHorTur implements Serializable {
@EmbeddedId
private RefHorTurPK areaProfessorPK;
@Column(name = "Turma", nullable = false)
private String turma;
public RefHorTur() {
}
public RefHorTurPK getAreaProfessorPK() {
return areaProfessorPK;
}
public void setAreaProfessorPK(RefHorTurPK areaProfessorPK) {
this.areaProfessorPK = areaProfessorPK;
}
public String getTurma() {
return turma;
}
public void setTurma(String turma) {
this.turma = turma;
}
//getters & setters
}
Até aqui, não aparece nenhum problema. O problema maior está no momento do relacionamento com a classe Professor. Já tentei de todas as formas, e ele sempre retorna objeto nulo no objeto Professor:
public class Professor implements Serializable {
@Id
@Column(name = "Codigo", nullable = false)
private String codigo;
@Column(name = "Nome", nullable = false)
private String nome;
@OneToMany()
@JoinColumns({
@JoinColumn(name="rht_area", referencedColumnName="area"),
@JoinColumn(name="rht_professor", referencedColumnName="professor")
})
private List<RefHorTur> refHorTurs = new ArrayList<RefHorTur>();
//getters & setters
}
Se eu coloco essas linhas do relacionamento @OneToMany, recebo o objeto professor Nulo.
O que eu preciso é que a classe Professor me relacione todos os RefHorTur em que o professor apareça. Não preciso nem que a classe RefHorTur veja o Professor (se for possível fazer isso, seria uma funcionalidade a mais…)
Como construir esse relacionamento, usando essa chave composta?