Boa noite pessoal!
Estou encucado com um problema de converter aqui.
O cenario é o seguinte:
Tenho uma combo-box que está sendo populado por um List, ela até é populada com os registros, mas quando aplico um converter para mostrar o nome do campo que eu gostaria (na combo) a mesa não funciona.
Segue o codigo:
Saida no Console:
[code]Hibernate:
select
count(visitante0_.idVisitante) as col_0_0_
from
visitante visitante0_ limit ?
getAsString(): 0
getAsString(): entidades.Visitante[ idVisitante=1 ]
getAsString(): entidades.Visitante[ idVisitante=2 ]
getAsString(): entidades.Visitante[ idVisitante=3 ]
getAsString(): entidades.Visitante[ idVisitante=4 ]
getAsString(): entidades.Visitante[ idVisitante=7 ][/code]
Classe com meu Converter:
[code]package converters;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import controllers.VisitanteController;
import entidades.Visitante;
@FacesConverter( value=“keyConverterVisitante” )
public class VisitanteConverter implements Converter{
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Visitante visitante;
if(value.equals("0")){
visitante = new Visitante();
}else{
// will throw new IllegalArgumentException if it can't parse.
System.out.println(">> getAsObject(): " + value);
VisitanteController visitanteController = new VisitanteController();
visitante = visitanteController.getVisitanteByNome(value);
}
// return c;
return visitante;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
System.out.println(">> getAsString(): " + value);
// TipoQuarto tipoQuarto = (TipoQuarto) value;
// return tipoQuarto.getDescricao();
return value.toString();
}
}
[/code]
Metodo que retorna a Query:
public Visitante getVisitanteByNome(String nome) {
System.out.println(">> " + nome);
Query q = entityManager.createQuery("SELECT tq FROM Visitante tq WHERE tq.nome = :nome");
q.setParameter("nome", nome);
return (Visitante) q.getSingleResult();
}
Por exemplo eu tenho outro converter e funciona numa boa em outra combo.
O resultado deste outro e exibido abaixo:
[code]Hibernate:
select
count(tipoquarto0_.idTipo) as col_0_0_
from
tipo_quarto tipoquarto0_ limit ?
getAsString(): 0
getAsString(): Simples
getAsString(): Luxo
getAsString(): Estudante
getAsString(): Intermediario
getAsString(): King[/code]
Gostaria de realizar essa conversao com foi mostrado na saida de console acima, mas já nao sei o que pode estar errado.
Obrigado e abraço a todos.