remove @Persist from:

 @Persist
   private Gene gene;

and your onActivate method seems strange
perhaps if you return null instead of GeneDetails.class;

the session is closed after renderring, not before
the renderring is part of the request, but you chose
to persist the Gene and redirect to your self
in that case a new request happens and your problems..

Davor Hrg


Davor Hrg

On Tue, Aug 26, 2008 at 11:17 AM, moritzgilsdorf
<[EMAIL PROTECTED]>wrote:

>
> I pass the Id of the Object to Detailspage and use onActivate() to query
> for
> the object I want to show in detail.
>
> My Details Page:
>
> public class GeneDetails {
>    ...
>    @Persist
>    private Gene gene;
>
>    @Inject
>    private GeneDAO geneDAO;
>    ...
>    Object onActivate(Long id){
>        if(userExists){
>           gene = geneDAO.getGeneById(id);
>           return GeneDetails.class;
>        }
>        else
>           return Index.class;
>    }
>    ...
> }
>
> My Gene.class
>
> public class Gene {
>    ...
>    private Set<Reagent> reagents;
>    ...
> }
>
> The exception is thrown when i call:
>
> <t:if t:test="gene.reagents.isEmpty()">
>
> If I understand this right, the session is closed directly after the query
> was done and before the page is rendered. Do I have to query again for my
> collection when I want to access it or is there any way to keep the session
> open until the page-rendering has finished?
>
> Thanks
>
> ...
>
> Davor Hrg wrote:
> >
> > you should post some code,
> >
> > but the most likely scenario is that you are persisting
> > Entities in your page
> >
> > this is not good because every request has a different session,
> > and the session that loaded the collection  was closed in a previous
> > request,
> >
> > you should remember your search parameters instead holding on to the
> > collection,
> >
> > If you are trying to optimize performance by caching results
> > please don't, that is not the way hibernate supports it.
> > you should always query again and let hibernate handle performance,
> > to cache query results you'll need to get to know hibernate more
> > and it's caching configuration (second-level cache, query cache ...).
> >
> >
> > Davor Hrg
> >
> > On Tue, Aug 26, 2008 at 10:35 AM, moritzgilsdorf
> > <[EMAIL PROTECTED]>wrote:
> >
> >>
> >> Hi,
> >>
> >> I have a Problem with lazy loading. In my App I query a Database using
> >> Hibernate. The workflow is the following:
> >>
> >> Searchpage           ->  Resultspage     ->  Detailspage
> >> ------------------------------------------------------------------------
> >> search by keyword ->  Results in Grid ->  Details of picked result
> >>
> >> The queried Objects contain a collection that should be presented on the
> >> Detailspage and loaded there lazily. When a hit in the result grid is
> >> clicked, I pass the Id of the entry using the page activation context to
> >> Detailspage (I want the Details to be bookmarkable). But when accessing
> >> the
> >> collection on the Detailspage, the  LazyInitializationException is
> >> thrown.
> >> For Database-access I use an injected service interface.
> >>
> >> I believe this is not an unusual scenario so I hope anyone here can give
> >> me
> >> a hint on how to solve this problem.
> >>
> >> Thanks, Moritz
> >> --
> >> View this message in context:
> >> http://n2.nabble.com/LazyInitializationException-tp783491p783491.html
> >> Sent from the Tapestry Users mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://n2.nabble.com/LazyInitializationException-tp783491p783576.html
> Sent from the Tapestry Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to