Q:

SelectOneRadio enviando apenas um valor

Estou concluindo um sistema de simulados para meu trabalho de conclusão de curso. No entanto, estou com um problema que ainda não consegui resolver. 
Eu faço realizo um filtro para selecionar as perguntas para o usuário responder, e jogo essas perguntas que foram encontradas pelo filtro dentro de uma List. No entanto, na hora do aluno responder essas perguntas o selectOneRadio só pega o ultimo valor e não todos os valores da resposta para fazer a comparação.
Alguém pode me ajudar?
Segue os códigos relacionados:
Filtro: 
    public class SimuladoFiltroDAO implements Serializable {

        private static final long serialVersionUID = 1L;

        @Inject
        private EntityManager manager;

        @SuppressWarnings("unchecked")
        public List<Questao> geraSimuladoPorFiltro(Long codigoCurso,
                Integer complexidade, Integer numeroDeQuestoes) {
            String query = "SELECT NEW com.sisEnade.tcc.modelo.Questao(q.codigo, q.pergunta, "
                    + "q.respostaPadraoPerguntaItem) FROM Questao q "
                    + "WHERE CURSO = ?1 AND complexidade = ?2";
            List<Questao> questoes = manager.createQuery(query)
                    .setParameter(1, codigoCurso).setParameter(2, complexidade)
                    .setMaxResults(numeroDeQuestoes).getResultList();
            for (Questao questao : questoes) {
                System.out.println(questao.getCodigo());
                System.out.println(questao.getPergunta());
                System.out.println(questao.getRespostaPadraoPerguntaItem());
            }
            return questoes;
        }

Simulado Bean: 

@Named
@ViewScoped
public class GerarSimuladoBean implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    SimuladoFiltroDAO simuladoFiltroDAO;

    @Inject
    private RespostaService respostaService;

    private Curso cursoSelecionado;
    private Integer complexidadeSelecionada;
    private Integer numeroDeQuestoesSimulado;
    private Resposta resposta = new Resposta();

    private List<Questao> questoes;

    @Transactional
    public void gerarSimulado() {
        this.questoes = simuladoFiltroDAO.geraSimuladoPorFiltro(
                cursoSelecionado.getCodigo(), this.complexidadeSelecionada,
                this.numeroDeQuestoesSimulado);
        this.resposta.setQuestao(questoes);
    }

    @Transactional
    public void enviar() {
        this.respostaService.salvar(resposta);
        FacesUtil.addSuccessMessage("Resposta salva com sucesso");
    }

    public Curso getCursoSelecionado() {
        return cursoSelecionado;
    }

    public void setCursoSelecionado(Curso cursoSelecionado) {
        this.cursoSelecionado = cursoSelecionado;
    }

    public Integer getComplexidadeSelecionada() {
        return complexidadeSelecionada;
    }

    public void setComplexidadeSelecionada(Integer complexidadeSelecionada) {
        this.complexidadeSelecionada = complexidadeSelecionada;
    }

    public Integer getNumeroDeQuestoesSimulado() {
        return numeroDeQuestoesSimulado;
    }

    public void setNumeroDeQuestoesSimulado(Integer numeroDeQuestoesSimulado) {
        this.numeroDeQuestoesSimulado = numeroDeQuestoesSimulado;
    }

    public List<Questao> getQuestoes() {
        return questoes;
    }

    public void setQuestoes(List<Questao> questoes) {
        this.questoes = questoes;
    }

    public Resposta getResposta() {
        return resposta;
    }

    public void setResposta(Resposta resposta) {
        this.resposta = resposta;
    }

}   

Aqui segue uma imagem do meu problema mais detalhado, eu recebo uma lista de perguntas e respondo duas perguntas só que ele só manda uma resposta e não as duas.

XHTML Do trecho envolvido:
<p:dataTable id="exibePerguntas" var="questao"
                value="#{gerarSimuladoBean.questoes}" >
                <p:column headerText="Perguntas">
                    <br></br>
                    <p:outputLabel value="#{questao.pergunta}" />
                    <p:selectOneRadio id="resposta" style="width:25%" value="#{gerarSimuladoBean.resposta.respostaItem}">
                        <f:selectItem itemLabel="A" itemValue="A" />
                        <f:selectItem itemLabel="B" itemValue="B" />
                        <f:selectItem itemLabel="C" itemValue="C" />
                        <f:selectItem itemLabel="D" itemValue="D" />
                    </p:selectOneRadio>
                </p:column>
            </p:dataTable>
            <p:commandButton id="enviarSimulado" value="Enviar Simulado"
                    action="#{gerarSimuladoBean.enviar}" icon="ui-icon-search"
                    iconPos="right" update=":frmCadastroSimulado">
                </p:commandButton>

Valeus!

A:

Voce pode tentar fazer como está aqui.
Crie um Map de Perguntas e Respostas... aí ao inves de atribuir a variavel resposta.respostaItem, voce cria um Map<Pergunta, Resposta> selectedOptions . Aí a atribuiçao fica assim:
<p:selectOneRadio value="#{gerarSimuladoBean.selectedOptions[question]}">

