Thanks for replying
Yup thanks
I was debugging it and I was able to see it in the session object. meaning
that it is still stored in my object.
I changed the implementation to loading the object.
Now I changed it to loading it from a facade bean.
Thanks
Jonathan Locke wrote:
>
>
> I should also add this: although you can do what you will in Wicket, it is
> generally better to use models consistently and reload your objects from
> the DB (this isn't so bad in practice as a lot of the time reloads will
> just hit ehcache or whatever you're using to cache query results and hook
> the object back up again in no time). It also shrinks the serialization
> overhead and replication bandwidth required to move your objects around in
> the cluster (and with SoftReferenced instance objects it could also
> decrease your non-reclaimable memory load if that matters). But it is
> also generally helpful to work with reloadable models because they
> automatically avert the more common stale data issues you'll run into. In
> a multi-user system, this is helpful. If you've got a Label whose model
> is a PropertyModel on a reloadable PersonModel and someone else changes
> the PersonModel, the expression being retrieved from the model will
> auto-update. If the label is directly holding the POJO and it's not
> reloadable, the label will continue to display the stale data forever.
>
>
> Jonathan Locke wrote:
>>
>>
>> Your QueryDetachableModel will break under clustering. The transient
>> "instance" Object will become null when the container deserializes it and
>> your load method will be unable to reload the object.
>>
>> If you're using these QueryDetachableModels, yes, the object instance is
>> being stored in your session. But no, it will not be replicated
>> correctly.
>>
>> If you really want to make the memory impact disappear as well as the
>> clustering bandwidth, you would need to use a transient SoftReference and
>> take the hit of implementing a load method which reads your object from
>> some kind of object storage (or cache).
>>
>> There is no free lunch. You are ultimately stuck with a tradeoff: either
>> use the memory and/or bandwidth OR be prepared to pay the price of
>> loading the object from storage.
>>
>>
>> carloc wrote:
>>>
>>> Hi, I would like to ask this.
>>>
>>> Are my objects still being stored in the session when I use this kind of
>>> query.
>>> I don't requery the objects using a detachable model.
>>>
>>> package com.ccti.web.query;
>>>
>>> import org.apache.wicket.model.LoadableDetachableModel;
>>>
>>> public class QueryDetachableModel extends LoadableDetachableModel {
>>> private transient Object instance;
>>>
>>> public QueryDetachableModel(Object instance) {
>>> this.instance = instance;
>>> }
>>> @Override
>>> protected Object load() {
>>> // TODO Auto-generated method stub
>>> return instance;
>>> }
>>>
>>> }
>>>
>>> Here's how my DataProvider looks like.
>>>
>>>
>>> public class QueryDataProvider extends SortableDataProvider {
>>>
>>> /**
>>> *
>>> */
>>> private transient QueryCommand queryCommand;
>>>
>>> public QueryDataProvider(QueryCommand queryCommand) {
>>> this.queryCommand = queryCommand;
>>> }
>>>
>>> /* (non-Javadoc)
>>> * @see
>>> org.apache.wicket.markup.repeater.data.IDataProvider#iterator(int, int)
>>> */
>>> public Iterator iterator(int first, int count) {
>>> // TODO Auto-generated method stub
>>>
>>> setQueryLimits(first, count);
>>> return queryCommand.execute();
>>> }
>>>
>>> /**
>>> * @param first
>>> * @param count
>>> */
>>> private void setQueryLimits(int first, int count) {
>>> // can't be set anywhere else but here.
>>> queryCommand.setPageIndex(first);
>>> queryCommand.setPageSize(count);
>>> }
>>>
>>> public IModel model(Object object) {
>>> // TODO Auto-generated method stub
>>> return new QueryDetachableModel(object);
>>> }
>>>
>>> public int size() {
>>> // TODO Auto-generated method stub
>>> return queryCommand.queryCount();
>>> }
>>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Question-With-Detachable-Models-tf4446686.html#a12690353
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]