Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

recupear do SelectOneMenu e armazenar no banco de dados

Olá pessoal boa noite. Como faço para pegar um item e armazenar no banco de dados. eu não quero busca no banco apenas pegar o itemLabel e armazenar no banco de dados. ex. se o usuário selecionar itemvalue=1 será gravado no banco na coluna ocupação solução de software

6 respostas

Oi Wildemarkes, tudo bem?

Pra mim não ficou muito claro, mas se eu entendi o que você quis dizer você precisa de um converter personalizado: um componente que saiba pegar o id da requisição e convertê-lo em um objeto e vice-versa.

Dê uma olhada nesse artigo do Rafael, em que ele explica direitinho:

http://www.rponte.com.br/2008/07/26/entity-converters-pra-da-e-vender/

Abraços!

Olá Wildemarks, o link que o Leonardo disponibilizou é interessante, porém segue um link mais atualizado. Eu peguei o código do Rafael e tornei genérico, sem a necessidade de implementar uma interface. Veja se te ajuda:

http://www.guj.com.br/java/220692-para-voce-entityconverter-para-qualquer-entidade-e-tipo-de-id

Consegui fazer assim

<p:selectOneMenu value="#{competidorBean.competidor.ocupacao}"
                        id="ocupacao">
                        <f:selectItem itemLabel="Solução de Software"
                            itemValue="solucao_de_software" />
                        <f:selectItem itemLabel="WebDesign" itemValue="1"></f:selectItem>
                        <f:selectItem itemLabel="Caldeiraria" itemValue="2"></f:selectItem>
                        <f:selectItem itemLabel="Tecnologia da Informção (PcD)"
                            itemValue="3"></f:selectItem>
                        <f:selectItem itemLabel="Panificação" itemValue="4"></f:selectItem>
                    </p:selectOneMenu>`

Legal Wildemarkes, pode marcar a resposta como solução para fecharmos o tópico?

Abraços!

solução!

eu crio uma classe bean recupero o atributo através do objeto competidor e passo através do expression language no selectOneMenu daí dependendo do item que ele selecionar este valor será armazenado.