Dúvida ClassesDAO

10 respostas
J

Boa noite amigos!

Alguém pode me ajudar com classes DAO? O problema é o seguinte, para cada classe do meu modelo criei um DAO que implementa uma interface com as operações básicas do banco de dados, até aí tudo bem, o problema é que no meu modelo algumas classes tem um ArrayList de outras classes e assim por diante. Por exemplo tenho a classe Pergunta que um de seus atributos é um Array de objetos da classe Resposta por exemplo. No meu banco já esta mapeado essas entidades que no caso seria uma relação 1 pra muitos. Na minha classe PerguntaDAO recebe um objeto do tipo Pergunta para ser inserido no banco de dados, alguém sabe como faço para inserir os dados da minha classe Pergunta no banco de dados considerando que um de seus atributos é um array?

10 Respostas

J

Acredito que você não esteja usando Hibernate certo!?

xandevieira

Salva o objeto pergunta, depois os objetos resposta.
Pq para a resposta vc devera obrigatoriamente ter a pergunta.

J

olá Jcneto, não estou utilizando Hibernate e avsouza salvo de um em um meu objeto pergunta?

xandevieira

coloca ai como ficou seus objetos (pergunta/ resposta).

J

Meus pojos estão desta forma:

package ibope.model.pojo;

import java.util.List;
import java.util.ArrayList;

public class Pergunta {
private Long id;
private String nome;
List participa = new ArrayList();
private List pertence = new ArrayList();
private String tipoResposta;

public void setId(Long id) {
this.id = id;
}

public Long getId() {
return this.id;
}

public void setNome(String nome) {
this.nome = nome;
}

public String getNome() {
return this.nome;
}

/**
* @return the pertence
*/
public List getPertence() {
return pertence;
}

/**
* @param pertence the pertence to set
*/
public void setPertence(List pertence) {
this.pertence = pertence;
}

/**
* @return the tipoResposta
*/
public String getTipoResposta() {
return tipoResposta;
}

/**
* @param tipoResposta the tipoResposta to set
*/
public void setTipoResposta(String tipoResposta) {
this.tipoResposta = tipoResposta;
}
}[/code]

package ibope.model.pojo;

public class OpcaoResposta {
private String nome;
private Long id;

public void setNome(String nome) {
this.nome = nome;
}

public String getNome() {
return this.nome;
}

/**
* @return the id
*/
public Long getId() {
return id;
}

/**
* @param id the id to set
*/
public void setId(Long id) {
this.id = id;
}
}[code]

xandevieira

faltou o resposta

J

desculpe, o nome da classse está OpcaoResposta.

xandevieira

List<Resposta> participa = new ArrayList<Resposta>();

esta parte não existe então?

Então pelo q vi, vc tera sempre uma pergunta ja com vairas respostas, correto? Tipo prova de multipla escolha.
Vc salva primeiro o pergunta, este tem o “id”, logo em seguida vc salva a lista de OpcaoResposta (um a um mesmo), porem senti falta do id da pergunta na resposta.

Penso q o correto seria

private Long id (resposta);
private Long idPergunta;

para vc poder junta na hora do select

Se for para fazer a pergunta tipo uma entrevista, vc ja tera a pegunta salva, e so vai incluindo as resposta, mas do mesmo jeito falta o idPergunta, para identificar qual foi a pergunta para aquela resposta.

Se não fui claro fala ai.

J

essa é a idéia mesmo tenho que cadastrar uma pergunta com várias opções de respostas como segue abaixo,

public class Pergunta{
  
  private List<OpcaoResposta> pertence = new ArrayList<OpcaoResposta>(); 
 
}

e na minha classe Pergunta tenho um id também.

xandevieira
j2tinho:
essa é a idéia mesmo tenho que cadastrar uma pergunta com várias opções de respostas como segue abaixo,
public class Pergunta{
  
  private List<OpcaoResposta> pertence = new ArrayList<OpcaoResposta>(); 
 
}

e na minha classe Pergunta tenho um id também.

mas o id q vc tem na pergunta é o id da pergunta (imagina que esta seja a chave primaria) e nao do opcaoresposta.
pois a classe pai eh a pergunta e filha sao as respostas, entao quem deve ter um identificador do pai eh a opcaoresposta.

a classe pergunta firaria mais ou menos assim:
private Long id;
	private String nome;
a opcaoresposta ficaria assim:
private String nome;
	private Long id;
private Long idPergunta;

no momento de carregar as perguntas fica facil

Criado 27 de agosto de 2009
Ultima resposta 27 de ago. de 2009
Respostas 10
Participantes 3