Opa galera, beleza?
Estou com algumas dúvidas.
Eu tenho uma entidade e esta entidade possui uma chave composta.
Li aqui como fazer (criar uma classe e anotar ela como @Embeddable).
Primeira dúvida é: A minha chave composta, os dois IDs são ids de outras entidades. Eu posso mapear estes atributos como o tipo da entidade ou somente por um tipo numérico (Long, Integer....)?
Segunda dúvida: Como fazer uma busca, com JPA, retornando uma lista de objeto (uma entidade) onde uma campo da minha chave composta é o parâmetro? Ex: CLasse AulaPK (chave composta)import javax.persistence.Embeddable;
@Embeddable
public class AulaPk {
private Aula aula;
private Professor professor;
public Aula getAula()
{
return aula;
}
public void setAula(Aula aula)
{
this.aula = aula;
}
public Professor getProfessor()
{
return professor;
}
public void setProfessor(Professor professor)
{
this.professor = professor;
}
}
import java.util.Calendar;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Aula
{
@EmbeddedId
private AulaPk pk;
@Temporal(TemporalType.DATE)
private Calendar hora;
public Calendar getHora() {
return hora;
}
public void setHora(Calendar hora) {
this.hora = hora;
}
public AulaPk getPk() {
return pk;
}
public void setPk(AulaPk pk) {
this.pk = pk;
}
}
*Notem que as duas classes foram geradas como exemplo.
Como buscar todas as aulas de um professor?