Olá,
Estou começando a utilizar primefaces e gostaria de usar um campo autocomplete usando informações do banco de dados, mas não sei qual estratégia de implementação adotar.
Em todos exemplos que eu vi, as informações do banco que serão utilizadas como sugestão para o autocomplete são carregadas no construtor do bean, ou seja, depois que a página é aberta não há mais atualização das mesmas.
Eu queria criar um campo autocomplete, que a cada digito fizesse um select e apresentasse as informações.
Sei que isso pode ser extremamente custoso para aplicação, mas acho que as informações carregadas no construtor podem não ser suficientes para atender às necessidades do autocomplete.
Qual estratégia usar?
E qual o problema?
Primefaces utiliza ajax em suas requisições do p:autocomplete, assim sendo, você pode criar um método no managed bean que processe e retorne o que você buscou.
Me parece mais falta de entendimento do funcionamento do primefaces e do java web do que problema com o componente em si.
Então, acho que não expliquei direito, é o seguinte:
Eu queria fazer um autocomplete que, à medida em que o usuário digite, ele faça um select no banco com as informações do campo. Assim, para cada caractere digitado haverá um select no banco.
É isso que tenho receio de fazer, nos exemplos que vi é feito uma carga das informações ao criar o bean e elas são usadas no autocomplete, não há um select para cada caractere.
Minha dúvida é se é possível fazer executando uma query para cada caractere. Tecnicamente eu sei que é, basta implementar, mas a estratégia é essa? Ha alguma estratégia melhor?
Carregando as informações no construtor do bean eu não tenho o dinamismo que eu preciso.
Agora ficou claro?
Eu já havia entendido.
Você que não me entendeu.
Quais exemplos você viu? Por que não implementa e vê se isso funciona?
Vi exemplos da própria página do componente.
Eu tentar implementar não vai resolver o problema, pois provavelmente vai funcionar. Só que é óbvio para mim, que será um processo muito custoso para o banco de dados realizar uma consulta a cada digito inserido pelo usuário.
Então, o que eu quero saber, é que estratégias posso usar. Uma delas, que vi no exemplo, é fazer uma só consulta ao criar o bean, mas isso não atende me atende.
Olá amigo, custoso vai ser de todo jeito hehe.
mas vc poderia simplesmente carregar sob demanda hehe.
Coloca la que ele traga só 15 e tals, ou 30 dependendo do tipo de registro e pronto.
Quando o cara digitar uma letra, ele filtra 30 + 1 letra ele filtra outros 30 mais especificos, e assim sucessivamente.
Eu mesmo mando ele trazer tudo, não vejo porque abordar outra estrategia, a não ser que seja uma consulta que um dia poderá trazer 1000 registros.
Se for menos que isso, eu mando trazer tudo hehe !!!
[quote=darksteel3000]Olá amigo, custoso vai ser de todo jeito hehe.
mas vc poderia simplesmente carregar sob demanda hehe.
Coloca la que ele traga só 15 e tals, ou 30 dependendo do tipo de registro e pronto.
Quando o cara digitar uma letra, ele filtra 30 + 1 letra ele filtra outros 30 mais especificos, e assim sucessivamente.
Eu mesmo mando ele trazer tudo, não vejo porque abordar outra estrategia, a não ser que seja uma consulta que um dia poderá trazer 1000 registros.
Se for menos que isso, eu mando trazer tudo hehe !!![/quote]
Pô, agora sim uma luz… heheheh
É uma idéia… Alguém faz de outra forma?