Olá pessoal, estou querendo tirar uma dúvida basica.
A questao é a seguinte: como eu não tenho conhecimento em SQL, aprendi nos cursos da caelum a fazer a classe e gerar o banco atravez do hibernate.
QUando eu vou fazer um relacionamento entre tabelas, ficaria mais ou menos assim:
@Entity
@Table(name = "pergunta")
public class Perguntas {
@Id
@GeneratedValue
@Column(name = "cod_perguntas")
private Long cod_perguntas;
private Long questionario_cod_questionario;//aqui seria meu relacionamento com a tabela questionario (não me perguntem q tipo de relacionamento é esse...)
private String descricao;
@Entity
@Table(name = "pergunta")
public class Perguntas {
@Id
@GeneratedValue
@Column(name = "cod_perguntas")
private Long cod_perguntas;
private String descricao;
private String tipo;
@OneToMany(mappedBy = "perguntas", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Respostas> respostas = new ArrayList<Respostas>();
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn(name = "questionario")
private Questionario questionario;
Aí pergunto a vcs: QUal a diferença prática? Qual a melhor forma?? Das duas formas eu sei q funcionam, só q da primeira, quando eu gravo no banco, apenas salvo o id relacional no registro... Já na segunda, salvo o nome (String, seria isso mesmo??).
Aguardo esclarecimento dos colegas.
Abs.