Pessoal é o seguinte estou tentando inserir um registro na minha base de dados o problema é que sempre
que tento realizar a inserção o hibernate me lança essa exceção.
8449 [http-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - ERRO: inserção ou atualização em tabela "resposta" viola restrição de chave estrangeira "fkebb727215e23ed80"
Detalhe: Chave (idprova)=(2) não está presente na tabela "questao".
Não entendo qual problema poderia ser porque na minha base existe um registro prova com esse id e o relacionamento entre prova e questão é manyTomany e por isso não faz nenhum
sentido que ele esteja cobrando o id de prova dentro de questão.
Mapeamento da minha classe Resposta.
[code]
public class Resposta {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idresposta;
@ManyToOne
@JoinColumn(name="cpfMatricula")
private Aluno aluno;
@ManyToOne
@JoinColumn(name="idProva")
private Prova prova;
@ManyToOne
@JoinColumn(name="idQuestao")
private Questao questao;
@ManyToOne
@JoinColumn(name="idAlternativa")
private Alternativa alternativa;[/code]
Mapeamento da minha classe questão
[code]
@Entity
@Table(name = “questao”)
public class Questao {
@Id
private String idQuestao;
@Column
private String enunciado;
private String enunciadoHTML;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idDisciplina", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
private Disciplina disciplina;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "cpfMatricula", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
private Professor professor;
@ManyToMany
@JoinTable(name="prova_questao",joinColumns={@JoinColumn(name="idQuestao")},
inverseJoinColumns={@JoinColumn(name="idProva")})
private Collection<Prova> provas;
@OneToMany(mappedBy = "questao", cascade = CascadeType.ALL)
private Collection<Alternativa> alternativas;
@OneToMany(mappedBy = "questao")
private Collection<Resposta> respostas;[/code]
Mapeamento da minha classe prova.
@Entity
@Table(name = "prova")
public class Prova {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idProva;
private
@ManyToMany
@JoinTable(name="prova_questao",joinColumns={@JoinColumn(name="idProva")},
inverseJoinColumns={@JoinColumn(name="idQuestao")})
private Collection<Questao> questoes;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "identificador", insertable = true, updatable = true)
@Fetch(FetchMode.JOIN)
private Instituicao instituicao;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "turma_prova", joinColumns = { @JoinColumn(name = "idProva") },
inverseJoinColumns = { @JoinColumn(name = "idTurma")})
private Collection<Turma> listaTurmas;
@OneToMany(mappedBy="prova", cascade=CascadeType.ALL)
private Collection<Resposta>respostas;
Não sei como resolver isso já olhei em alguns outros posts que apresentam o mesmo problema mas as soluções propostas nesses posts não vêm surtindo efeito por isso
peço a ajuda de vcs e agradeço muito se alguém colaborar.