Olá pessoal boa noite tudo bom?
Estou com dificuldades em mapear duas classes usando o Hibernate. Não sei qual a melhor forma de mapear o sistema.
A principio o sistema terá um cadastro de usuarios com os seguintes campos:
[list]Nome[/list]
[list]Endereço[/list]
[list]Telefone (residencial e celular)[/list]
[list]CPF[/list]
[list]Data Nascimento[/list]
Que serão mapeados na classe Usuario. Estes campos ficarão num formulario. Ao clicar no botão “proximo”, aparecerá um outro formulario com alguns inputs/selects/combobox:
[list]Raça (fazer a escolha num option)[/list]
[list]Fumante (sim ou não)[/list]
[list]Possui doença crônica (sim ou nao, e no caso de sim, aparecerá um inputtext para escrever qual a doença)[/list]
[list]etc…[/list]
Que serão mapeados na classe Questionario.
A pergunta é, qual a melhor forma de mapear estes sistema usando o Hibernate? Eu tenho que criar uma associação @OneToMany ou @ManyToMany?
Como que eu mapearei nas respectivas classes, cada campo do formulario?
Alguém tem uma idéia para me ajudar?
Tentei fazer o seguinte, será o correto? Como eu vou popular os campos da classe Questionario?
@Entity
public class Usuario {
@Id
@GeneratedValue
private Long id;
@NotNull
private String nome;
@NotNull
private String sexo;
@NotNull
@Temporal(TemporalType.DATE)
private Date datanasc;
@NotNull
private String cep;
@NotNull
private String logradouro;
@NotNull
private String bairro;
@NotNull
private String cidade;
@NotNull
private String estado;
@NotNull
private String numero;
@NotNull
private String complemento;
@NotNull
private String cpf;
@NotNull
@CollectionOfElements
private List <String>tel;
@NotNull
private String email;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@PrimaryKeyJoinColumn
@NotNull
private Questionario questionario;
//gets e sets
}
E classe Questionario:
[code]//@Entity
public class Questionario {
@Id
@GeneratedValue
private Long id;
@NotNull
private String pergunta;
@NotNull
private String resposta;
@NotNull
private String detalhe;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@PrimaryKeyJoinColumn
@NotNull
private Usuario usuario;
//gets e sets
[/code]
Qual a melhor forma de mapear os campos, para eu poder buscar um usuario pelo ID por exemplo e o Hibernat e já carregar todas perguntas e respostas do questionario automaticamente? E a questao do campo Telefone? Como poderei inserir o usuario com 2 telefone por exemplo?
Ficarei feliz se alguém puder me ajudar.
Aguardo resposta.
Obrigado.
Att,
Leandro.