Oi pessoal,
Eu to fazendo uma aplicação que usa a tag:
<h:selectOneMenu id="objetos" value="#{user.loja}">
<f:selectItems value="#{register.lojasOptions}"/>
<f:converter converterId="com.jsf.Conversores"/>
<rich:beanValidator />
</h:selectOneMenu>
O problema é que na hora de persistir no banco ele não faz pois o Conversor nao transforma o Objeto na instancia loja.
O método de conversão:
public Object getAsObject(FacesContext arg0, UIComponent arg1, String value) {
try {
if (value == null || value.equalsIgnoreCase("-1")){
return null;
}
int id = Integer.parseInt(value);
Loja aux = em.find(Loja.class, id);
return aux;
} catch (NumberFormatException ne) {
throw new ConverterException("Não foi possível converter (" + value
+ ") para Estado: não é um número inteiro.", ne);
} catch (IllegalArgumentException e) {
throw new ConverterException("Não foi possível converter (" + value
+ ") para Estado: identificador desconhecido.", e);
} catch (Exception e) {
throw new ConverterException("Não foi possível converter (" + value
+ ") para Estado: identificador desconhecido.", e);
}
}
Ele cai no Exception na hora em que ele tenta dar o em.find(Loja.class, id);
Daí gera esse warning:
WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=register:loja[severity=(ERROR 2), summary=({0}: Conversion error occurred.), detail=({0}: Conversion error occurred.)]
Já pesquisei nos fóruns sobre isso mas não encontrei nenhum que solucionasse isso.
Alguém pode ajudar?
Obrigado
.