Inserindo Objetos com Hibernate

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]

Tente o persist

session.persist(questao); 

Blz galera ele insere numa boa no banco a questão e as alternativas entretanto na tabela alternativa o id da questão q liga a alternativa a sua questão não
é salvo ele fica nulo alguma sugestão?? To postando aqui tb como venho testando o repositorio

[code]
public static void main(String[] args) {

	RepositorioDisciplina d = new RepositorioDisciplina();
	RepositorioProfessor p = new RepositorioProfessor();
	RepositorioQuestao qeco=new RepositorioQuestao();

	
	Alternativa a1= new Alternativa(null, "tens","A", null, 15, "caminhoImagem", true, true);
	Alternativa a2= new Alternativa(null, "como","B", null, 0, "caminhoImagem", false, true);
	Alternativa a3= new Alternativa(null, "sei", "C", null, 0, "caminhoImagem", false, true);
	Alternativa a4= new Alternativa(null, "olé", "D", null, 0, "caminhoImagem", false, true);
	Alternativa a5= new Alternativa(null, "Ada", "E", null, 0, "caminhoImagem", false, true);
	
	ArrayList<Alternativa> es= new ArrayList<Alternativa>();
	es.add(a1);
	es.add(a2);
	es.add(a3);
	es.add(a4);
	es.add(a5);
	
	
	Questao que= new Questao("140", "Quem foi o que?",d.consultarDisciplina("DI05201140413", "CEMA") , p.consultarProfessor("01235556562"), 15, 
			"comentarioResposta","caminhoImagem", "mutiplaEscolha",  0, es, true);
	
	qeco.inserirQuestao(que);
	
}[/code]

O primeiro atributo q é passado com null é o id da alternativa e o quarto atributo q é passado como null é objeto da questão a qual ela pertence. Eu passo ele como
nulo pq como estou passando as alternativas dentro do objeto questão acredito que precise passa-lás de novo…agradeço ajuda pessoal…

E agora aparece esse erro nessa situação.

org.hibernate.PersistentObjectException: detached entity passed to persist: pacote.classe