[RESOLVIDO]p:selectOneMenu Chave Composta

Pessoal ,

Fiz o seguinte

                <p:selectOneMenu style="width: 350px;">
                    <f:selectItems value="#{cadguiaMbean.item}"/>
                </p:selectOneMenu>

Meu Bean :

@ManagedBean
@ViewScoped
public class CadguiaMbean extends ManagedBeanGenerico<Cadguia, CadguiaServico> implements Serializable {

    @Override
    public void iniciarView() {
        item = listaespec();
       
    }

    public List<SelectItem> listaespec() {
        List<Object> objectList = servico.buscaprestadorespecialidade(1);

        List<SelectItem> itens = new ArrayList<SelectItem>(objectList.size());
        Iterator iterator = objectList.iterator();
        Integer contador=0;
        while (iterator.hasNext()) {
            Object[] obj = (Object[]) iterator.next();
           
            contador++; 
            itens.add(new SelectItem(contador, (String) obj[1]));
            
        }

Criei um contador, mas minha tabela tem uma chave composta, tem como usar essa chave composta no selectOneMenu?

tem sim!!

veja um pequeno exemplo:

	public List&lt;SelectItem&gt; getContratos() {

		try {

			contratos = null;
			contratos = new ArrayList&lt;SelectItem&gt;();

			List&lt;Contrato&gt; tmp = facade.getListContratos();
			for (Contrato contrato : tmp) {
				contratos.add(new SelectItem(contrato.getId(), contrato.getCpf().concat(" - Contrato: ").concat(contrato.getId().toString())));
				contrato = null;
			}
			tmp = null;
		} catch (FacadeException e) {
			log.error(e);
		}

		return contratos;
	}

basta acessar as propriedades do objeto.

Fala Evandro, caso tenha resolvido, não esqueça de “editar o primeiro post” e adicionar “RESOLVIDO”.

Abraços.

blz…robison…segui o seu exemplo e deu certo…

abc

vlw