A single bean for a wizard is a good idea.  But typically you can't use a
detachable model in a wizard because you can't persist the state between
wizard steps.  Therefore, you need to just hold the bean in the component or
in a static model that will not detach between steps.

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



On Thu, Nov 12, 2009 at 7:03 AM, Fernando Wermus
<fernando.wer...@gmail.com>wrote:

> Jeremy,
>     Thanks a lot. This was the problem. But then I have a question about
> design I made:
>
> I am using wizard a lot and I found that having a "bean" that collects al
> the entitties through the steps makes my code cleaner. For instance, I can
> hide some model manipulation into it. But I rose this situation, where I
> had
> to implement IDetachable in my bean.
>
> What do you think about?
>
>
>
> On Wed, Nov 11, 2009 at 5:16 PM, Jeremy Thomerson <
> jer...@wickettraining.com
> > wrote:
>
> > 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
> > >
> >
>
>
>
> --
> Fernando Wermus.
>
> www.linkedin.com/in/fernandowermus
>

Reply via email to