[quote=22-Gers]Kleber, eu faria da seguinte maneira.
Crie uma classe pergunta e uma classe resposta, sendo que a classe pergunta tem uma relação one-to-many com a resposta. Sendo assim cada pergunta vai ter uma lista de respostas, e cada resposta deve ter um atributo id_usuario, que identifica de qual usuário é essa resposta.
Agora você tem uma estrutura ± assim:
Classe Pergunta -> List respostas;
Classe Resposta -> Long id_pergunta; Long id_usuario;
Classe Usuario -> (atributos de usuário);
Essa é uma das maneiras de fazer essa relação, mas não é a única. Pense sempre em fazer de uma maneira que facilite o que vem depois, por exemplo, se você precisar de relatórios das respostas depois deixa o mapeamento de maneira que favorece essa recuperação dos dados.
[]´s
[/quote]
Amigão, blz a gente teve a mesma idéia. Fiz exatamente como vc mencionou. Ficou assim:
[code]@Entity
public class Questionario {
@Id
@GeneratedValue
private Long cod_questionario;
@OneToMany(mappedBy = "questionario", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Respostas> respostas = new ArrayList<Respostas>();
@OneToMany(mappedBy = "questionario", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Perguntas> perguntas = new ArrayList<Perguntas>();
@OneToMany(mappedBy = "questionario", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<OrgaoGestor> orgaogestor = new ArrayList<OrgaoGestor>(); //no lugar do usuario
//getters e setters…
[/code]
[code]@Entity
public class Respostas {
@Id
@GeneratedValue
@Column(name = "cod_respostas")
private Long cod_respostas;
private String descricao;
private String resposta_complemento;
private Boolean marcar;
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn(name = "perguntas")
private Perguntas perguntas;
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn(name = "questionario")
private Questionario questionario;
[/code]
[code]@Entity
public class Perguntas {
@Id
@GeneratedValue
@Column(name = "cod_perguntas")
private Long cod_perguntas;
private String descricao;
private String tipo;
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn(name = "orgaogestor")
private OrgaoGestor orgaogestor;
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn(name = "questionario")
private Questionario questionario;
[/code]
[code]@Entity
public class OrgaoGestor {
@Id
@GeneratedValue
private Long cod_orgaogestor;
// ...
private String nome;
// ...
@OneToMany(mappedBy = "orgaogestor", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Funcionario> funcionario = new ArrayList<Funcionario>();
@OneToMany(mappedBy = "orgaogestor", fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Unidade> unidade = new ArrayList<Unidade>();
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn(name = "questionario")
private Questionario questionario;
[/code]
tá certo?? É isso mesmo??
Agora, o que eu preciso é da lógica do bean. Eu quero q para cada pergunta, me apareça a lista de respostas para que se marque tipo assim:
- pergunta id_1?
Resposta 1 id_1 ();
Resposta 2 id_1 ();
Resposta 3 id_1 ();
- pergunta id_2?
Resposta 1 id_2 ();
Resposta 2 id_2 ();
Resposta 3 id_2 ();
…
Entendeu?? Eu só naum sei ainda como fazer os métodos para me mostrar isso… hehehe
Valeu!!