Problema com relacionamento 1:n Hibernate+mysql

0 respostas
rh.rh

Saudações a todos!

Eu tenho uma tabela pergunta e outra tabela resposta
uma resposta pode ter varias perguntas, ou seja, tenho um relacionamento de 1:n entre as tabelas pergunta e resposta…

toda via, quando eu insiro uma pergunta no banco com suas respequitivas respostas, o atributo ?idpergunta? da tabela resposta vem com valor ?null?.
Como não houvesse pergunta relacionada a resposta.

uso:
WindowsXP(testei no linux)
hibernate3
java6
banco Mysql

@Entity
public class Resposta {	
	@Id
	@GeneratedValue
	private int idRespostas;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="idPergunda", insertable=true, updatable=true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Pergunta pergunta;	
	
	
	private String respostas;
	
	@Column(name="qtdTotalVotos")
	private int votos;
	
	//construtores padrão
	public Resposta(){
		
	}
	public Resposta(int idRespostas, Pergunta pergunta, String respostas, int votos) {		
		this.idRespostas = idRespostas;
		this.pergunta = pergunta;
		this.respostas = respostas;
		this.votos = votos;
	}	
	//gets set
}
@Entity
public class Pergunta {	
	@Id
	@GeneratedValue
	private int idPergunta;	
	
	private String pergunta;	
	
	@OneToMany(mappedBy="pergunta")
	@Cascade(CascadeType.ALL)
	private Collection<Resposta> resposta; 
	
	//construtor padrão
	public Pergunta() {}	
	
	public Pergunta(String pergunta, Collection<Resposta> resposta) {		
		this.pergunta = pergunta;
		this.resposta = resposta;
	}	
	//gets sets
}
public class RepositorioPergunta {
	private Session s;

	public RepositorioPergunta(){
		s = Conecxao.getSession();
	} 

	public void salvarPergunta(Pergunta p){
		Transaction tx = s.beginTransaction();
		s.save(p);
		tx.commit();
	}	
}
public class SalvarResposta {

	public static void main(String[] args) {

		Pergunta p = new Pergunta();
		p.setPergunta("onde eu fui");

		Resposta r1 = new Resposta();
		r1.setRespostas("opacao1");
		r1.setPergunta(p);		

		Resposta r2 = new Resposta();
		r2.setRespostas("opção2");
		r2.setPergunta(p);		

		Resposta r3 = new Resposta();
		r3.setRespostas("opacao3");
		r3.setPergunta(p);		

		p.setResposta(new HashSet <Resposta>());
		p.getResposta().add(r1);
		p.getResposta().add(r2);
		p.getResposta().add(r3);		

		RepositorioPergunta rp = new RepositorioPergunta();
		rp.salvarPergunta(p);
	}
}

Grato pela atenção e paciente de ter lido até o final. faz poucas horas que estou estudando o hibernate, logo, pessos desculpas pela falta de informação teórica e pratica.

Criado 3 de agosto de 2010
Respostas 0
Participantes 1