JSF: SelectOneMenu preencher uma collection

Olá Pessoal, tenho o seguinte cenário:

Tenho um relacionamento ManyToMany e quero relacionar duas classes.

Exemplo: Aluno () ------- () Matéria. Muitos alunos podem ter muitas matérias.

Fiz um selectOneMenu da classe Aluno apontando para o relacionamento manyToMany:

<p:selectOneMenu id="alunoCB" value="#{alunoBean.aluno.materias}" converter="MateriaConverter">
<f:selectItems noSelectionValue="Selecione" value="#{materiaBean.materias}" var="matSelect" itemValue="#{matSelect}" itemLabel="#{matSelect.nome}" />
</p:selectOneMenu>

PS.: O Converter está definido

Quando eu sobmeto isso ele me retorna o seguinte erro.

Caused by: java.lang.ClassCastException:modelo.Materia cannot be cast to java.util.Collection

Ao meu ver o JSF está tentando converter o objeto que se encontra em “#{matSelect}” (que é do tipo Matéria) em um ArrayList<Matéria>. Quando eu queria que ele fizesse o add no ArrayList que já existe …

      @ManyToMany
      private List<Materia> materias = new ArrayList<Materia>();

Utilizando um objeto Materia na classe eu já consegui fazer e também pegando o objeto selecionado e setando diretamente no arrayList já consegui fazer. Gostaria de saber se existe alguma forma de fazer como citado acima.
Muito obrigado pela ajuda desde já

Dá uma olhada no value do p:selectOneMenu.
Lá vc define o método para setar o valor selecionado, não a lista de matérias.
Mais ou menos assim:

[code]
public void setSelected(Materia m) {
selected = m;
}


<p:selectOneMenu value="#{bean.selected}" …
[/code]>

[quote=juno.rr]Dá uma olhada no value do p:selectOneMenu.
Lá vc define o método para setar o valor selecionado, não a lista de matérias.
Mais ou menos assim:

[code]
public void setSelected(Materia m) {
selected = m;
}


<p:selectOneMenu value="#{bean.selected}" …
[/code]>[/quote]

Assim eu consegui fazer … Eu queria setar diretamente mesmo …

Mas muito obrigado pela resposta