Comecei a trabalhar a pouco tempo com jsf e acabei me deparando com uma situação que me preocupou um pouco, ao debugar a paginação do componente p:dataTable percebi que o método get que carrega a lista para o dataTable é executado varias vezes dentro de um único clico de vida.
Não estou usando o lazy. o problema não esta no get, o problema é ele ser executado varias vezes, em um único ciclo de vida, quando repagina o dataTable ele executa todos os ciclos e o método executa varias vezes em cada ciclo.
[quote=tjalencar][quote=kleberdamasco]
estás usando o lazy?
tens como colocar o método get() ?[/quote]
Não estou usando o lazy. o problema não esta no get, o problema é ele ser executado varias vezes, em um único ciclo de vida, quando repagina o dataTable ele executa todos os ciclos e o método executa varias vezes em cada ciclo. [/quote]
Então não faça de jeito oras… Isso é do ciclo de vida do JSF e não tem como evitar… Crie sua lista; e popule-a ( Logica + Queries) no construtor do seu MB, ou em um método anotado com @PostConstruct. No get você só retorna a lista.
Então não faça de jeito oras… Isso é do ciclo de vida do JSF e não tem como evitar… Crie sua lista; e popule-a ( Logica + Queries) no construtor do seu MB, ou em um método anotado com @PostConstruct. No get você só retorna a lista.[/quote]
Amigo eu sei o que é o ciclo de vidas e sei como funciona, o que estou questionando é múltipla execução dentro de um ciclo de vida, mesmo com o @PostConstruct acontece a mesma coisa.
Não teria vindo aqui questionar uma coisa sem ter efetuado vários testes.
Esta tudo funcionando perfeitamente, só criei o tópico para intender o que esta ocorrendo.
Então não faça de jeito oras… Isso é do ciclo de vida do JSF e não tem como evitar… Crie sua lista; e popule-a ( Logica + Queries) no construtor do seu MB, ou em um método anotado com @PostConstruct. No get você só retorna a lista.[/quote]
Amigo eu sei o que é o ciclo de vidas e sei como funciona, o que estou questionando é múltipla execução dentro de um ciclo de vida, mesmo com o @PostConstruct acontece a mesma coisa.
Não teria vindo aqui questionar uma coisa sem ter efetuado vários testes.
Esta tudo funcionando perfeitamente, só criei o tópico para intender o que esta ocorrendo.
[/quote]
O problema é o NOME do método, entendeu? Qualquer método GET que esteja no MB é executado várias vezes, se você tiver as consultas dentro de um get ele irá executar N vezes e não a nada que você possa fazer sobre isso.
O problema é o NOME do método, entendeu? Qualquer método GET que esteja no MB é executado várias vezes, se você tiver as consultas dentro de um get ele irá executar N vezes e não a nada que você possa fazer sobre isso.[/quote]
Então não faça de jeito oras… Isso é do ciclo de vida do JSF e não tem como evitar… Crie sua lista; e popule-a ( Logica + Queries) no construtor do seu MB, ou em um método anotado com @PostConstruct. No get você só retorna a lista.[/quote]
Amigo eu sei o que é o ciclo de vidas e sei como funciona, o que estou questionando é múltipla execução dentro de um ciclo de vida, mesmo com o @PostConstruct acontece a mesma coisa.
Não teria vindo aqui questionar uma coisa sem ter efetuado vários testes.
Esta tudo funcionando perfeitamente, só criei o tópico para intender o que esta ocorrendo.
[/quote]
O problema é o NOME do método, entendeu? Qualquer método GET que esteja no MB é executado várias vezes, se você tiver as consultas dentro de um get ele irá executar N vezes e não a nada que você possa fazer sobre isso.[/quote]
Ó Haters, se soubessem que 90% dos problemas do JSF é falta de estudo, tudo seria mais fácil. Anyway, falando sério agora. JSF não é perfeito, não é bala de prata, não resolve todos os problemas do mundo, mas cumpre com propriedade o que foi projetado para fazer… É só aprender de VERDADE como fazer.