[RESOLVIDO] Persistir mais de uma classe ao mesmo tempo

Olá pessoal…

Eu fazendo um projeto onde o usuário cadastra um exercício que pode ter 1 ou mais questões e cada questão pode ter 1 ou mais alternativas, e quando ele clica
’Cadastrar’ persiste todos os dados de uma vez…

até fiz as 3 classes… Exercicio, Questao e Alternativa mas só consegui persistir Exercicio e Questao ao mesmo tempo, a classe Alternativa eu não consegui, pois a classe Questão é
@Embeddable e não pode ter um id gerado pelo banco!!

Alguém sabe uma forma de mapear isso!!!

Se alguém puder ajudar agradeço!!!

Exercicio

@Entity
@Table(name="T_EXERCICIO")
public class Exercicio implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY) 
	@Column(name="ID_EXERCICIO")
	private Long id;
	
	@Column(name="NOM_EXERCICIO", length=100, nullable=false)
	private String nome;
	
	
	@ElementCollection
	@CollectionTable(name="T_QUESTAO", joinColumns=@JoinColumn(name="FK_EXERCICIO"))
	private List<Questao> questoes;

       //getters e setters
}

Questao

@Embeddable
@Table(name="T_QUESTAO")
public class Questao {
		
	@Column(name="DSC_VALOR", length=3, nullable=false)
	private Integer valor;
	
	@Column(name="DSC_QUESTAO", length=100, nullable=false)
	private String descricao;

       //getters e setters  
}

Alternativa

@Embeddable
@Table(name="T_ALTERNATIVA")
public class Alternativa {
	
	@Column(name="DSC_ALTERNATIVA", length=100, nullable=false)
	private String descricao;
	
	
	@Column(name="DSC_RESPOSTA", length=1, nullable=true) 
	private String statusResposta;
      
       //getters e setters 

}

TesteExercicio

	public static void main(String[] args) throws ParseException {
		
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("EXERCICIO");
		EntityManager em = emf.createEntityManager();
		EntityTransaction tx = em.getTransaction();

		tx.begin();
			
		Exercicio e1 = new Exercicio();
		
		e1.setNome("Contas de somar e subtrair");
		
		Questao q1 = new Questao();
		q1.setValor(5);
		q1.setDescricao("Quanto é 2 + 2 ?");
		
		Questao q2 = new Questao();
		q2.setValor(5);
		q2.setDescricao("Quanto é 3 - 2 ?");
		
		List<Questao> questoes = new ArrayList<Questao>();
		questoes.add(q1);
		questoes.add(q2);
		
		e1.setQuestoes(questoes);
		
		em.persist(e1);
		
		tx.commit();
	
		em.close();
	}

valores gerados:

T_EXERCICIO
ID_EXERCICIO | NOM_EXERCICIO
1 Contas de somar e subtrair

T_QUESTAO
FK_EXERCICIO | DSC_QUESTAO | DSC_VALOR
1 Quanto é 2 + 2 ? 5
1 Quanto é 3 - 2 ? 5

Já consegui resolver!!

qual foi a solução?