Problemas em conversão

1 resposta
Kleber-rr

Olá pessoal, estou tendo um trabalho na implantação de um método HtmlSelectManyListbox, onde os dados quando deveriam ser salvos no banco, me retornam esse erro no console do eclipse:

10/02/2010 12:22:40 com.sun.faces.lifecycle.RenderResponsePhase execute
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id33:selPerg1[severity=(ERROR 2), summary=(Conversion Error setting value '3 18' for '#{questionarioHandler.resposta.codRespostas}'. ), detail=(Conversion Error setting value '3 18' for '#{questionarioHandler.resposta.codRespostas}'. )]

O erro me indica que está tendo um problema na conversão dos valores selecionados, apesar de no método eu solicitar essa conversão...

Como eu não achei nada sobre a aplicação metodológica no bean referente ao HtmlSelectManyListbox, me ocorre que poderá ser um erro de métodos ou problema no armazenamento do registro no banco. Segue abaixo os métodos utilizados:

public class QuestionarioHandler {

private HtmlSelectManyListbox respostas1Selecionado = new HtmlSelectManyListbox();
//getters e setters..
	public List<SelectItem> getRespostasPergunta1() {
		Session session = HibernateUtil.currentSession();
		RespostasDao dao = new RespostasDao(session, Respostas.class);
		List<Respostas> respostas = dao.getRespostasByPergunta1(new Long(1));
		List<SelectItem> items = new ArrayList<SelectItem>(respostas.size());

		for (Respostas r : respostas) {
			items.add(new SelectItem(r.getCodRespostas(), r.getDescricao()));
		}

		return items;

	}
	public String salva() {

		Session session = HibernateUtil.currentSession();
		Dao<Questionario> dao = new Dao<Questionario>(session,
				Questionario.class);
		Dao<OrgaoGestor> ogDao = new Dao<OrgaoGestor>(session,
				OrgaoGestor.class);
		Dao<Respostas> respostasDao = new Dao<Respostas>(session,
				Respostas.class);

		// orgaogestor
		Long id_orgaogestor1 = Long.valueOf(orgaogestorSelecionado.getValue()
				.toString());
		OrgaoGestor og1 = ogDao.load(id_orgaogestor1);
		questionario.setOrgaogestor(og1);
		// respostas1
		Long id_respostas1 = Long.valueOf(respostas1Selecionado.getValue()
				.toString()); //AQUI ESTÁ A CONVERSÃO OU SERÁ Q ELA NÃO É A CORRETA?
		Respostas r1 = respostasDao.load(id_respostas1);
		questionario.setResposta(r1);
		dao.merge(this.questionario);
		this.questionario = new Questionario();
		return "sucesso";
	}
O arquivo xhtml:
<h:outputText value="1) Pergunta 1: " />
		<h:selectManyListbox value="#{questionarioHandler.resposta.codRespostas}" binding="#{questionarioHandler.respostas1Selecionado}" id="selPerg1">
				<f:selectItem itemValue="" itemLabel="Selecione" id="selper1"/>
				<f:selectItems value="#{questionarioHandler.respostasPergunta1}" id="sPerg1"/>
		</h:selectManyListbox>
			<br/>
Como eu tenho muita dificuldade com relacionamentos entre tabelas e a própria linguagem postgreSQL, o que me levou a estudar o que me apareceu na net sobre o assunto, eu crio as tabelas e relacionamentos através das anotações do hibernate, onde as tabelas questionario, perguntas e respostas se relacionam da seguinte forma:
//tabela questionario
@Entity
@Table(name = "questionario")
public class Questionario {

	@Id
	@GeneratedValue
	@Column(name = "cod_questionario")
	private Long cod_questionario;

	@ManyToOne
	@JoinColumn(name = "cod_orgaogestor")
	private OrgaoGestor orgaogestor;

	@ManyToOne
	@JoinColumn(name = "codRespostas")
	private Respostas resposta;
//getters e setters

//tabela perguntas

@Entity
@Table(name = "pergunta")
public class Perguntas {

	@Id
	@GeneratedValue
	@Column(name = "codPerguntas")
	private Long codPerguntas;

	private String descricao;
	private String tipo;

	@OneToMany(mappedBy = "pergunta", fetch = FetchType.LAZY)
	private List&lt;Respostas&gt; respostas = new ArrayList&lt;Respostas&gt;();
//getters e setters

//tabela respostas
@Entity
@Table(name = "resposta")
public class Respostas {

	@Id
	@GeneratedValue
	@Column(name = "codRespostas")
	private Long codRespostas;
	private String descricao;
	private String resposta_complemento;
	private Boolean marcar;

	@ManyToOne
	@JoinColumn(name = "pergunta")
	private Perguntas pergunta;

Pelas leituras que eu fiz, não foi recomendado o relacionamento bidirecional, o que me fez suprimi-lo na tabela de respostas (caso realmente seja necessário, eu coloco de novo).

Agradeço a ajuda dos colegas.

1 Resposta

Kleber-rr

eae pessoal, alguma sugestão?

Criado 10 de fevereiro de 2010
Ultima resposta 11 de fev. de 2010
Respostas 1
Participantes 1