Furer Alexander wrote:
The problem is that i have another controls (filter query) on my page, that's why i can't hit DB only when clients==null (filter values are not updated yet at this phase). Is there any way to get phaseID in getter method of managed bean ? Thanks

    ----- Original Message -----
    *From:* Cagatay Civici <mailto:[EMAIL PROTECTED]>
    *To:* MyFaces Discussion <mailto:[email protected]>
    *Sent:* Thursday, June 01, 2006 2:37 PM
    *Subject:* Re: getter called few times

    Hi,

    There are several reasons why getters are called more than once, for
    example, checking for value changes, rendering and etc.

    You can try lazy initialization to fetch only once like;

    private List clients;

    public List getClients() {
     if(clients == null)
       clients = fetchFromDB();
    return clients;
    }

    First call to the getter will hit the db and set the clients list,
    other calls will just return the same list and not hit the db.

    Cagatay

    On 6/1/06, *Furer Alexander* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:

        Hi
        Why getter method of managed bean called few times for
        particular phase ?
        I have "clients" (List)  property of managed bean, getter method
        fetchs List from DB, how can i fetch only once   ?
        Below  is call trace for it's getter/setter:
        Thanks

        BEFORE RESTORE_VIEW(1)

        setClients, size: 17

        AFTER RESTORE_VIEW(1)

        BEFORE APPLY_REQUEST_VALUES(2)

        getClients, size: 17

        getClients, size: 17

        getClients, size: 17

        AFTER APPLY_REQUEST_VALUES(2)

        BEFORE PROCESS_VALIDATIONS(3)

        getClients, size: 17

        getClients, size: 17

        AFTER PROCESS_VALIDATIONS(3)

        BEFORE UPDATE_MODEL_VALUES(4)

        getClients, size: 19

        getClients, size: 19

        AFTER UPDATE_MODEL_VALUES(4)

        BEFORE INVOKE_APPLICATION(5)

        AFTER INVOKE_APPLICATION(5)

        BEFORE RENDER_RESPONSE(6)

        getClients, size: 19

        getClients, size: 19

        getClients, size: 19

        getClients, size: 19

        getClients, size: 19

        getClients, size: 19

        getClients, size: 19

        AFTER RENDER_RESPONSE(6)



Did you try to set the filter earlier using immediate attribute?

Best regards

Ondrej Svetlik

Reply via email to