Obrigado pela resposta amigo, vc entendeu exatamente o que eu queria, eu ja coloquei esse insertable false, porem ai eu nao consigo inserir ou alterar o registro, voce me falou de uma persistencia para alterar ?? como é isso ??
as chaves:
Este quero referenciar para a COMPOSICAO e MATRICULA, usando as mesmas colunas,
package br.com.nansoft.NaNEducacional;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
@Embeddable
public class FichaPK implements java.io.Serializable {
@ManyToOne
@JoinColumns({ @JoinColumn(name = "ano", referencedColumnName="ano"),
@JoinColumn(name = "idEscolaridade", referencedColumnName="idEscolaridade"),
@JoinColumn(name = "turma", referencedColumnName="turma"),
@JoinColumn(name = "idProfessor", referencedColumnName="idProfessor"),
@JoinColumn(name = "idDisciplina", referencedColumnName="idDisciplina") }
)
private Composicao composicao;
@ManyToOne
@JoinColumns({
@JoinColumn(name = "anoMatricula", referencedColumnName="ano" ), // Utilizar a mesma coluna referenciada acima
@JoinColumn(name = "idEscolaridadeMatricula", referencedColumnName="idEscolaridade" ), // Utilizar a mesma coluna referenciada acima
@JoinColumn(name = "turmaMatricula", referencedColumnName="turma" ), // Utilizar a mesma coluna referenciada acima
@JoinColumn(name = "idAluno", referencedColumnName="idAluno" ) }
)
private Matricula matricula;
// @ManyToOne
// @JoinColumn(name="idAluno")
// private Aluno aluno;
private Long bimestre;
public FichaPK() {
}
public Long getBimestre() {
return bimestre;
}
public void setBimestre(Long bimestre) {
this.bimestre = bimestre;
}
public Composicao getComposicao() {
return composicao;
}
public void setComposicao(Composicao composicao) {
this.composicao = composicao;
}
public Matricula getMatricula() {
return matricula;
}
public void setMatricula(Matricula matricula) {
this.matricula = matricula;
}
}
package br.com.nansoft.NaNEducacional;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
/**
*
* @author Allan
*/
@Embeddable
public class ComposicaoPK implements java.io.Serializable {
@ManyToOne
@JoinColumns({ @JoinColumn(name = "ano", referencedColumnName="ano"),
@JoinColumn(name = "idProfessor", referencedColumnName="idProfessor"),
@JoinColumn(name = "idDisciplina", referencedColumnName="idDisciplina") }
)
// @ManyToOne
// @JoinColumns({ @JoinColumn(name = "ano"),
// @JoinColumn(name = "idProfessor"),
// @JoinColumn(name = "idDisciplina") }
// )
private Professor professor;
@ManyToOne
@JoinColumn(name="idEscolaridade")
private Escolaridade escolaridade;
private String turma;
public ComposicaoPK() {
}
public Escolaridade getEscolaridade() {
return escolaridade;
}
public void setEscolaridade(Escolaridade escolaridade) {
this.escolaridade = escolaridade;
}
public Professor getProfessor() {
return professor;
}
public void setProfessor(Professor professor) {
this.professor = professor;
}
public String getTurma() {
return turma;
}
public void setTurma(String turma) {
this.turma = turma;
}
}
[code]package br.com.nansoft.NaNEducacional;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Embeddable
public class MatriculaPK implements java.io.Serializable {
private Long ano;
@ManyToOne
@JoinColumn(name="idEscolaridade")
private Escolaridade escolaridade;
private String turma;
@ManyToOne
@JoinColumn(name="idAluno")
private Aluno aluno;
public MatriculaPK() {
}
public Aluno getAluno() {
return aluno;
}
public void setAluno(Aluno aluno) {
this.aluno = aluno;
}
public Long getAno() {
return ano;
}
public void setAno(Long ano) {
this.ano = ano;
}
public Escolaridade getEscolaridade() {
return escolaridade;
}
public void setEscolaridade(Escolaridade escolaridade) {
this.escolaridade = escolaridade;
}
public String getTurma() {
return turma;
}
public void setTurma(String turma) {
this.turma = turma;
}
}
[/code]
Se puder me dar uma luz, obrigado.