Problemas em salvar dados do SelectManyCheckbox no banco postgresql

pessoal é o seguinte: Estou tentando salvar os dados de um SelectManyCheckbox em um banco, mas está me retornando esse erro:

[code]javax.servlet.ServletException: javax.servlet.ServletException: #{questionarioHandler.salva}: java.lang.NumberFormatException: For input string: “[Ljava.lang.String;@9a42ef
br.gov.rr.setrabes.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:26)

root cause
java.lang.NumberFormatException: For input string: “[Ljava.lang.String;@9a42ef
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
java.lang.Long.parseLong(Long.java:438)
java.lang.Long.valueOf(Long.java:535)
br.gov.rr.setrabes.handler.QuestionarioHandler.salva(QuestionarioHandler.java:140)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.apache.el.parser.AstValue.invoke(AstValue.java:172)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
javax.faces.component.UICommand.broadcast(UICommand.java:383)
org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:186)
org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:164)
org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:352)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:307)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
br.gov.rr.setrabes.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:23)

[/code]

AS minhas classes estão assim:
Classe questionario:

[code]@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 = "cod_respostas")
private Respostas resposta;[/code]

Classe respostas:

[code]@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;

@OneToMany(mappedBy = "resposta", fetch = FetchType.LAZY)
// @Cascade(org.hibernate.annotations.CascadeType.ALL)
private List<Questionario> questionarios = new ArrayList<Questionario>();[/code]

Classe questionarioHandler:

[code]public class QuestionarioHandler {

private Questionario questionario = new Questionario();
private Perguntas pergunta = new Perguntas();
private Respostas resposta = new Respostas();
private OrgaoGestor orgaogestor = new OrgaoGestor();
private List<SelectItem> orgaogestores = new ArrayList<SelectItem>();
private HtmlSelectOneMenu orgaogestorSelecionado = new HtmlSelectOneMenu();
private HtmlSelectManyCheckbox respostasSelecionado = new HtmlSelectManyCheckbox();

public List<Questionario> getQuestionarios() {
	System.out.println("Carregando a lista de questionario ...");
	Session session = HibernateUtil.currentSession();
	Dao<Questionario> dao = new Dao<Questionario>(session,
			Questionario.class);
	return dao.list();
}

// select para orgaogestorHandler
private OrgaoGestorHandler pegaOrgaoGestorHandler() {
	FacesContext facesContext = FacesContext.getCurrentInstance();
	ELContext elContext = facesContext.getELContext();
	ELResolver resolver = facesContext.getApplication().getELResolver();
	Object og = resolver.getValue(elContext, null, "orgaogestorHandler");

	return (OrgaoGestorHandler) og;
}

public List<SelectItem> getOrgaoGestorParaComboBox() {
	List<SelectItem> lista = new ArrayList<SelectItem>();

	// usaremos o id como valor e o nome como label para os SelectItem.
	OrgaoGestorHandler handler = pegaOrgaoGestorHandler();
	for (OrgaoGestor og : handler.getOrgaosGestores()) {
		lista.add(new SelectItem(og.getCod_orgaogestor(), og.getNome()));
	}
	return lista;
}


public String salva() {
	System.out
			.println("Adicionando: " + questionario.getCod_questionario());
	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_orgaogestor = Long.valueOf(orgaogestorSelecionado.getValue()
			.toString());
	OrgaoGestor og = ogDao.load(id_orgaogestor);
	questionario.setOrgaogestor(og);
	// respostas
	Long id_respostas = Long.valueOf(respostasSelecionado.getValue()
			.toString());
	Respostas r = respostasDao.load(id_respostas);
	questionario.setResposta(r);

	dao.merge(this.questionario);

	this.questionario = new Questionario();
	return "sucesso";
}

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;

}[/code]

RespostasDao:

@SuppressWarnings("unchecked") public List<Respostas> getRespostasByPergunta1(Long id) { Criteria criteria = session.createCriteria(Respostas.class); Perguntas pergunta = new Perguntas(); pergunta.setCodPerguntas(new Long(1)); criteria.add(Restrictions.eq("pergunta", pergunta)); List results = criteria.list(); return results; }

Além dos erros que por ventura venham a ter, provavelmente minha selectManyCheckBox deve estar errada.

&lt;h:outputText value="1) Pergunta 1: " /&gt; &lt;h:selectManyCheckbox binding="#{questionarioHandler.respostasSelecionado}" id="selPerg"&gt; &lt;f:selectItems value="#{questionarioHandler.respostasPergunta1}" id="sPerg"/&gt; &lt;/h:selectManyCheckbox&gt; <br/>

Pessoal, preciso de ajuda urgente!

Agradeço.

Pessoal, passei a utilizar o selectOneMenu para verificar a questão da gravaçao no banco, e está tudo ok…
O que eu tentei fazer tb, é criar 2 objetos selectOneMenu na classe questionarioHandler para ver se ele gravava 2 resposta em um único registro de questionario: Resultado: ele grava apenas 1.

Será q existe uma forma de modificar o relacionamento para gravar várias respostas em um único registro de questionario? ou será q eu vou ter q modificar a tabela e criar vários campos de resposta, tipo resposta1, resposta2, resposta3…???

Agradeço a ajuda!

Alguem??

Nada??

bom dia eu estou com o mesmo problema que você e não consigo resolver, você conseguiu resolver o seu?
Que possa me ajudar.

resolvi, mas não me lembro agora. vou olhar a aplicação e depois posto uma resposta, ok? fw