Thanks for the reply...

Herre is What I have...

iterator() loads the list of employee instances 
    public Iterator iterator(int first, int count) 
    {
        List employees = empService.getEmployees(); 
         
        return employees.iterator();
    }

in model() you give each of your detachable models an instance of the
employee, 
    public IModel model(Object object) 
    {
          return new EmployeeModel((Employee) object, empService);
    }

and in EmployeeModel.java

public class EmployeeModel extends LoadableDetachableModel {
 
private EmployeeService empService;
 private   Long id;
    public EmployeeModel(Employee emp, EmployeeService empService) {
        super(emp);
        this.id = emp.getId();
        this.empService= empService;
    }

    protected Object load() {
         return empService.getEmployee(String.valueOf(id));
    }
}

So, I my question is: when load() gets called from model() then where should
it look it up...as you said it does not need to go to database
again....because we already have the object. But, we did not store the
object anywhere....so that empService.getEmployee(String.valueOf(id)); can
go and look it up. When I retrieved Object in iterator() it was stored
locally. Where should I store it...so that above method can read it again?

Thanks for your help,
RG  



igor.vaynberg wrote:
> 
> i dont really get what the problem is
> 
> iterator() loads the list of employee instances
> 
> in model() you give each of your detachable models an instance of the
> employee, so during that request the model doesnt need to load
> anything because its already there...
> 
> -igor
> 
> On Thu, May 29, 2008 at 1:31 PM, nanotech <[EMAIL PROTECTED]> wrote:
>>
>> Thanks Igor for your reply.
>>
>> So, what do you suggest I should do:
>>
>> 1. After making the call in iterator() method Should I store the result
>> object (Employee object ) in EmployeeDAO and then refer it later when I
>> call
>>        public IModel model(Object object) {
>>                return new DetachableEmployeeModel((Employee)object);
>>        }
>> and then look it up (by employee Id) from that stored object?
>>
>> 2. Do I need to take care of synchronization when I store the object?
>>
>> Any other suggestions?
>>
>> Thanks,
>> RG
>>
>>
>>
>>
>>
>> igor.vaynberg wrote:
>>>
>>> On Thu, May 29, 2008 at 12:09 PM, nanotech <[EMAIL PROTECTED]>
>>> wrote:
>>>>
>>>> Hi,
>>>> I have a search form (in a panel)with various search fields(as text
>>>> fields)
>>>> on it. User should be able to fill in any number of search parameters
>>>> and
>>>> the results are to be displayed in table (with pagenation + sorting
>>>> capablity on columns) in a different panel on the same page under the
>>>> search
>>>> panel.
>>>>
>>>> I started looking at DataTable. It seems a option that will solve my
>>>> need.
>>>>
>>>> Looking at the datatable example on
>>>> http://www.wicket-library.com/wicket-examples/repeater/
>>>>
>>>> I observed that the following methods get called in the order
>>>>
>>>> 1. size() from CustomSortableDataProvider.
>>>> 2. iterator() from CustomSortableDataProvider
>>>> 3. load() from CustomLoadableDetachableModel.
>>>>
>>>> If I understand it correctly:-(Please  correct me if I am wrong)
>>>>  * size() requires , the number of records that provider will be
>>>> working
>>>> with. So, in above case i'll have to make query thrrough service layer
>>>> /DAO
>>>> like this  Select count(*) from Employees where  firstName Like 'ABC'
>>>> and
>>>> lastName Like 'XYZ'
>>>>
>>>> * iterator(final int first, final int count) will call Service
>>>> layer/DAO
>>>> to
>>>> do the actual query like this  Select * from Employees where firstName
>>>> Like
>>>> 'ABC' and lastName Like 'XYZ'
>>>>
>>>> * finally in model ...I will call the CustomLoadableDetachableModel and
>>>> its
>>>> load() method will load the actual Employee model  for each item that
>>>> will
>>>> be displayed on first page of the list being rendered in data table.
>>>>
>>>>
>>>> It seems that there are too many queries in case of datatable. If the
>>>> result
>>>> set has thousands of records and we are displaying 100 per page then it
>>>> will
>>>> do 100+ queries to render all the items.
>>>>
>>>> Questions:
>>>> 1. Did I sum up about DataTable correctly?
>>>
>>> no, there are only two queries per page render of datatable.
>>>
>>>> If yes, Won't this be a
>>>> bottleneck considering the number of queries?
>>>
>>>> 2. Is there a better way of doing this?
>>>
>>> not until someone finds one.
>>>
>>> -igor
>>>
>>>>
>>>> Thanks,
>>>> RG
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Using-DataTable-tp17543606p17543606.html
>>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Using-DataTable-tp17543606p17545174.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Using-DataTable-tp17543606p17545978.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to