Are you holding the model as an instance variable somewhere?  If so, you'll
need to detach it manually.  The component only auto-detaches the default
model.

i.e. this will get auto-detached:

public class SomeComponent extends Component {
  public SomeComponent(String id, IModel model) {
    super(id, model); // this will go into default model and will be
auto-detached
  }
}

i.e. this will NOT get auto-detached:

public class SomeComponent extends Component {
  private IModel myModel;
  public SomeComponent(String id, IModel model) {
    super(id);
    myModel = model; // this will not be auto-detached
  }

  // you need this:
  public void onDetach() {
    myModel.detach();
  }
}



--
Jeremy Thomerson
http://www.wickettraining.com



On Wed, Nov 11, 2009 at 10:52 AM, Fernando Wermus <fernando.wer...@gmail.com
> wrote:

> Hi all,
>     I have a wizard with five wizardSteps.
>
> Also I have an LDM called EntityModel,
>
> EntityModel extends LDM{
>
> EntityModel(Key key)
>    this.key=key;
> }
>
> load(){   // I  look up for the entity with the key}
>
> }
>
> But I have a case where it doesnt behave as expected.
> There is a case where the fifth step consults to EntityModel to get the
> entity and it doesnt look up the db because it does have the entity in its
> transient attribute. Thus, I got a LazyLoadingException.
>
> Isnt it supposed that  LDMs get rid off transient objects for each request?
>
> Why is this case behaving in this way?
>
> Am I supposed to overwrite onAttach to verify that the entity attached is
> not still connected to the session? I thought LDM will work it out.
>
> thanks in advance
>
> --
> Fernando Wermus.
>
> www.linkedin.com/in/fernandowermus
>

Reply via email to