Galera eu tenho uma entidade no meu sistema Questão e uma outra entidade chamada Alternativa. Essas duas entidades se relacionam
de forma que uma questão possui várias alternativas mas, uma alternativa possui apenas uma questão. O problema é que quando eu vou inserir
uma questão eu passo dentro do objeto questão uma Collection de alternativas e o objeto questão é inserido sem nenhum problema porém quando
vou na tabela de alternativas nenhuma alternativa foi inserida no banco de dados abaixo segue meu mapeamento via annotations do hibernate nas
duas entidades e também o método que estou utilizando para inserir os objetos agradeço a ajuda não tenho idéia de como resolver isso se vcs observarem
já utilizei a annotation cascade que algumas pessoas me falaram que resolveria o problema entretanto o problema persiste.
Classe Alternativa
[code]
@Entity
@Table(name = “Alternativa”)
public class Alternativa {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idAlternativa;
private String descricao;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "idQuestao")
private Questao questao;
private int valor;
private String caminhoImagem;
private boolean resposta;
private boolean status;
public Alternativa() {
}[/code]
Classe Questão
[code]
@Entity
@Table(name = “questao”)
public class Questao {
@Id
private String idQuestao;
@Column
private String enunciado;
@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(fetch = FetchType.LAZY)
@JoinTable(name = "prova_questao", joinColumns = { @JoinColumn(name = "idQuestao") },
inverseJoinColumns = { @JoinColumn(name = "idProva") })
private Collection<Prova> provas;
@Column
private int pontuacaoQuestao;
@Column
private String comentarioResposta;
@Column
private String caminhoImagem;
@OneToMany(mappedBy = "questao", cascade=CascadeType.ALL)
private Collection<Alternativa> alternativas;
@Column
private String tipo;
@Column
private int valorSomatorio;
@OneToMany(mappedBy = "prova", fetch = FetchType.LAZY)
private Collection<Resposta> respostas;
private boolean status;[/code]
Método inserir Questão
[code]
public void inserirQuestao(Questao questao) {
session = CreateSessionFactory.openSession();
tx = session.beginTransaction();
session.save(questao);
tx.commit();
session.close();
}[/code]