Q:

When is the load of a detachableloadablemodel called in java wicket?

In my code I have a something like the following: 
The wicket form:
public class MyForm extends Form<MyFormModel> {
    public MyForm(String id){
        super(id, new CompoundPropertyModel<MyFormModel>(new MyFormModel())

        //add some labels from the CompoundPropertyModel

    }

    @Override
    protected void onSubmit() {

        setResponsePage(new NewPage(getModelObject()));

    }
}

The form model:
public class MyFormModel extends LoadableDetachableModel<List<NotSerializableObject>> {

    transient List<NotSerializableObject> list;

    //Some labels with getters and setters for CompoundPropertyModel use

    protected List<NotSerializableObject> load() {
        //list = dbstuff.getstuff()
    } 
}

When the page is loaded with MyForm on it, the MyFormModel uses the load() function and tries to access the db before the form is submitted. I don't understand why because getModelObject() isn't called until the form is submitted and onSubmit() is called.
I understand that the CompoundPropertyModel and LoadableDetachableModel should be split to solve this but why does this not work? Why and from where is the load() function called?
Thanks for any help,
Martin

A:

When the Form is displayed, each of the FormComponent s ask its Model for the value. The first call to getModelObject() (out of my head, have not done much wicket recently) is chained to the load() in the LoadableDetacheableModel. 

