Hi,

Pass an IModel<DomainObject>model into your dataprovider instead of the DomainObject itself.

e.g.

class MyPanel

    private final IModel<DomainObject>model;

    public MyPanel (String id) {
        super (id);

    model = new LoadableDetachableModel() {
            protected DomainObject load() {// return object
            }


add (new DataTable ("table", columns, new DomainObjectAwareProvider (model), ...);

    }
      protected void detatchModels() {
        model.detatch();
        super.detatchModels();
     }
}

The detachment of the model can be managed by the panel that creates the model and you can just use the object returned from the model within your data provider. This is better than passing the ID because your provider can just work against the DomainObject without also having to be responsible for loading it.

Regards,

Mike

Hi,

I have a DataProvider that implements IDataProvider, and for example in the
size method I need to call the service as follows:

     public int size() {
         return service.countAllByDomainObjectY(domainObjectY);
     }

DomainObjectX contains a manytoone relationship with DomainObjectY.
So, this countAllByDomainObjectY internally searches by the domainObjectY's
id and returns the count of DomainObjectX associated with that specific
domainObjectY.

Now, in order to do this I would need to have domainObjectY as a property of
the DataProvider which I think it is not good because it would be
serialized.

Should I change the service to receive just the domainObjectY's id and only
"save" this id as a property of the DataProvider?

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/DataProvider-calling-a-Service-Dao-that-requires-a-domain-object-tp3341572p3341572.html
Sent from the Users forum 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]

Reply via email to