JSF 2.0 (Construir um selectmanycheckbox, popular e salvar os objetos escolhidos em um BD)

Oi Gente!

Tenho uma dúvida…
Estou construindo uma aplicação simples pra web usando JSF 2.0.
Gostaria de saber como faço para salvar os dados de um selectmanycheckbox no banco de dados.
Já consegui fazer aparecer na tela com as opções de escolha direitin. Meu problema agora é obter os dados selecionados
e salvá-los na BD.

Abaixo segue meu código que renderiza na tela o meu selectmanycheckbox

arquivo xhtml:

<h:outputLabel> <h:outputText value="2.33 Marque os bens que existem em seu domicílio:"/></h:outputLabel> <h:selectManyCheckbox id="bensdomicilio" value="#{managerbean.respostabensdomicilio.codigo}" > <f:selectItems value="#{managerbean.listarespostabensdomicilio}" var="respostabensdomicilio" itemLabel="#respostabensdomicilio.descricao}" itemValue="#{respostabensdomicilio.codigo}"/> </h:selectManyCheckbox>


[code]package model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.*;

/**

  • The persistent class for the resposta database table.

*/
@Entity
public class Resposta implements Serializable {
private static final long serialVersionUID = 1L;

@Id
private Integer codigo;

private String descricao;

@Column(name="numero_resposta")
private Integer numeroResposta;

//bi-directional many-to-one association to Entrevista
@OneToMany(mappedBy="resposta")
private List<Entrevista> entrevistas;

//bi-directional many-to-one association to Pergunta
@ManyToOne
@JoinColumn(name="codigo_pergunta")
private Pergunta pergunta;

public Resposta() {
}

public Integer getCodigo() {
	return this.codigo;
}

public void setCodigo(Integer codigo) {
	this.codigo = codigo;
}

public String getDescricao() {
	return this.descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public String getNumeroResposta() {
	return Integer.toString(this.numeroResposta);
}

public void setNumeroResposta(Integer numeroResposta) {
	this.numeroResposta = numeroResposta;
}

public List<Entrevista> getEntrevistas() {
	return this.entrevistas;
}

public void setEntrevistas(List<Entrevista> entrevistas) {
	this.entrevistas = entrevistas;
}

public Pergunta getPergunta() {
	return this.pergunta;
}

public void setPergunta(Pergunta pergunta) {
	this.pergunta = pergunta;
}
	
@Override
public boolean equals(Object resposta){
	Resposta r = (Resposta) resposta;
	return getCodigo().equals(r.getCodigo());
}

@Override
public int hashCode(){
	return codigo.hashCode();
}

@Override
public String toString() {
	// TODO Auto-generated method stub
	return Integer.toString(codigo);
}

}[/code]


[code]package model;

import java.io.Serializable;
import javax.persistence.*;

import java.util.List;

/**

  • The persistent class for the pergunta database table.

*/
@Entity
public class Pergunta implements Serializable {
private static final long serialVersionUID = 1L;

@Id
private double codigo;

private String descricao;

//bi-directional many-to-one association to Entrevista
@OneToMany(mappedBy="pergunta")
private List<Entrevista> entrevistas;

//bi-directional many-to-one association to Categoria
@ManyToOne
@JoinColumn(name="codigo_categoria")
private Categoria categoria;

//bi-directional many-to-one association to Resposta
@OneToMany(mappedBy="pergunta", fetch=FetchType.EAGER, cascade=CascadeType.ALL)
private List<Resposta> respostas;

public Pergunta() {
}

public double getCodigo() {
	return this.codigo;
}

public void setCodigo(double codigo) {
	this.codigo = codigo;
}

public String getDescricao() {
	return this.descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public List<Entrevista> getEntrevistas() {
	return this.entrevistas;
}

public void setEntrevistas(List<Entrevista> entrevistas) {
	this.entrevistas = entrevistas;
}

public Categoria getCategoria() {
	return this.categoria;
}

public void setCategoria(Categoria categoria) {
	this.categoria = categoria;
}

public List<Resposta> getRespostas() {
	return this.respostas;
}

public void setRespostas(List<Resposta> respostas) {
	this.respostas = respostas;
}

} [/code]

[code]@ManagedBean(name =“managerbean”)
@SessionScoped
public class QuestionarioController {
private List respostabensdomicilio;
private List listarespostabensdomicilio;

public List getRespostabensdomicilio() {
return respostabensdomicilio;
}
//SelectManyCheckBox
public void setRespostabensdomicilio(List respostabensdomicilio) {
this.respostabensdomicilio = respostabensdomicilio;
}
//SelectManyCheckBox
public List getListarespostabensdomicilio() {
PerguntaPersisty pc = new PerguntaPersisty();
this.listarespostabensdomicilio = pc.find(2.033).getRespostas();
return listarespostabensdomicilio;
}
//SelectManyCheckBox
public void setListarespostabensdomicilio(
List listarespostabensdomicilio) {
this.listarespostabensdomicilio = listarespostabensdomicilio;
}
}[/code]------------------------------------------------------------------------------------------------------------

Bom galera, meu código tá aí…
Eu acho que fazer isso é uma coisa boba, não devo estar atentando para alguma coisa muito boba,
mas infelizmente não tô conseguindo sacar onde está o problema,
por isso to pedindo ajuda aos Experts aqui do GUJ.

Abraços,
e de qualquer forma muito obrigado galera!
Jhonys

Por favor, formatar seu código utilizando o botão de formatação “Code”, com certeza o pessoal daqui irá pedir para fazer isso. Depois que formatar, com certeza o pessoal irá ajudá-lo.

Abraços.
:slight_smile:

Galera tá formatinho!
Vlw por ter avisado eduardoac!!
Abraços