if you want nicer code then use a dataview with a dataprovider, that
really is geared much better towards database data then listview, and
dataprovider.model() is a great place to wrap the entity with model,
so your code can look like this:

  public void populateItem( tem item) {
     item.add( new Link( "link" , item.getModel()) {
setResponsePage(new CategoryPage(getModel());}

-igor

On Thu, May 8, 2008 at 2:02 PM, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> On Thu, May 8, 2008 at 1:56 PM, Mathias P.W Nilsson
>  <[EMAIL PROTECTED]> wrote:
>  >
>  >
>
> >  add( new ListView( "myId" , detachedModel   ){
>  >    public void populateItem( ListItem item) {
>  >        final Category category = (Category) item.getModelObject();
>  >
>  >       item.add( new Link( "link" ){
>  >           public void onClick(){
>  >             setResponsePage( new CategoryPage( category ) );
>
>  ^^^^^---------- this is bad. now your anonymous link component is
>  holding onto a detached category object, so if in categorypage's
>  constructor you try to access a lazy collection you will get an
>  exception. the proper thing to do here is to:
>
>
>  final Category category = (Category) item.getModelObject();
>  final IModel cat=new HibernateEntityModel(category);
>  item.add(new Link("link", cat){ setResponsePage(new 
> CategoryPage(getModel()); }
>
>  the idea is to pass a lookup(a model) rather then the entity itself.
>  this way you are never holding onto the entity outside of a hibernate
>  session.
>
>  -igor
>
>
>
>
>  >           }
>  >       } );
>  >    }
>  >  });
>  >
>  >  I hope this is right. This is obviously from the top of my head. My 
> question
>  >  is.
>  >  When In my CategoryPage after a user has clicked the link in the list item
>  >  is the Category that I got
>  >  from a detached model detached? Or is it a hibernate proxy? If so, how 
> can I
>  >  get it detached all the way?
>  >
>  >
>  >  Igor wrote something about a detached DataProvider. Do I need to use
>  >  DataProvider to get detached hibernate pojos? I would really want to know
>  >  how to do this. Right now, I'm in spagetti code with DAOS that throws
>  >  LazyLoading exceptions and Wicket pages that does the same.
>  >
>  >
>  >  --
>  >  View this message in context: 
> http://www.nabble.com/Detached-models-tp17136199p17136199.html
>  >  Sent from the Wicket - User 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