atom feed6 messages in net.java.dev.cejug.discussao[CEJUG] Re: Dúvida @ElementCollection...
FromSent OnAttachments
Helcio FranciscoAug 1, 2011 8:05 am 
Helcio FranciscoAug 5, 2011 7:18 am 
Hildeberto MendonçaAug 5, 2011 11:34 pm 
Helcio FranciscoAug 9, 2011 6:49 am 
Hildeberto MendonçaAug 9, 2011 9:18 pm 
Helcio FranciscoAug 11, 2011 12:08 am 
Subject:[CEJUG] Re: Dúvida @ElementCollection + Enum
From:Helcio Francisco (fhel@gmail.com)
Date:Aug 5, 2011 7:18:14 am
List:net.java.dev.cejug.discussao

Ninguém ?

Amigos,*

*Estou com um problema ao tentar utilizar um enum para listar as funções em um cadastro de funcionarios, estou utilizando glassfish3 JPA2 JSF2.

ocorre que, ao anotar @ElementCollection, em "funcoes", é criada uma tabela funcionario_funcoes (com funcionario_id e funcoes), mas ao cadastrar um funcionario, não é gravado nada nessa tabela. Dúvidas: A construção do Enum está correta? Que eu saiba uma tabela Função deveria ser criada, com os valores demarcados. Como deveria ficar a classe de controle e o formulário de cadastro?

Quem puder ajudar,agradeço muito

Entidade Funcionario:

*@ElementCollection(fetch=FetchType.EAGER, targetClass=Funcao.class) @CollectionTable private Set<Funcao> funcoes = new HashSet<Funcao>();

*

formulário: ...

*<h:selectOneMenu value="#{ctrCadastrarFuncionario.funcao}"> <f:selectItems value="#{ctrCadastrarFuncionario.listaFuncoes}" /> </h:selectOneMenu> *

*classe de controle:* ...

private static List<SelectItem> listaFuncoes;

private String funcao = "OPERADOR";

public List<SelectItem> getListaFuncoes(){ if(listaFuncoes == null){ listaFuncoes = new ArrayList<SelectItem>(); listaFuncoes.add(new SelectItem("OPERADOR","Operador")); listaFuncoes.add(new SelectItem("DESPACHANTE","Despachante")); listaFuncoes.add(new SelectItem("ADMIN","Admin")); listaFuncoes.add(new SelectItem("MOTORISTA","Motorista"));

} return listaFuncoes; }

* enum*:

public enum Funcao { OPERADOR("Operador"), DESPACHANTE("Despachante"), MOTORISTA("Motorista"), ADMIN("Admin");

private String dscFuncao;

Funcao(String dscFuncao){ this.dscFuncao = dscFuncao; }

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