You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Cédric Thiébault <ce...@gmail.com> on 2008/09/15 23:04:35 UTC

DropDownChoice and lazy loaded choices

My DropDownChoice contains a list of hibernate entities that are not
fully loaded.
But when I select a value in the dropdown I receive a
LazyLoadingException because Wicket tries to add an entry in a
collection that was not previously loaded.

I tried to use a Converter but it is not called because
PropertyResolverConverter set directly the value (because their
classes are compatible) :
if (clz.isAssignableFrom(object.getClass())) {
  return object;
}

It works if I preload each entry in the list of choices of the
DropDownChoice but it is very expensive. To display the dropdown, I
just need to retrieve the name of my hibernate entity, not the
collection inside this bean.
I would like to load the collection only when the user select an
option in the select.

Code :
class Foo {
  Bar bar;

  void setBar(Bar bar) {
    this.bar = bar;
    bar.getFoos().add(this);  // this will throw a
LazyLoadingException if I don't fetch the collections before I render
the DropDownChoice
  }
}

class Bar {
  Collection<Foo> foos;
}

Is there a nice way to do that ?

Thanks in advance :-)

Cedric

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Igor Vaynberg <ig...@gmail.com>.
see https://issues.apache.org/jira/browse/WICKET-663

this will not happen until 1.5 though, for now you can override
convertChoiceIdToChoice(String) and implement your own lookup there.

-igor

On Mon, Sep 15, 2008 at 2:04 PM, Cédric Thiébault
<ce...@gmail.com> wrote:
> My DropDownChoice contains a list of hibernate entities that are not
> fully loaded.
> But when I select a value in the dropdown I receive a
> LazyLoadingException because Wicket tries to add an entry in a
> collection that was not previously loaded.
>
> I tried to use a Converter but it is not called because
> PropertyResolverConverter set directly the value (because their
> classes are compatible) :
> if (clz.isAssignableFrom(object.getClass())) {
>  return object;
> }
>
> It works if I preload each entry in the list of choices of the
> DropDownChoice but it is very expensive. To display the dropdown, I
> just need to retrieve the name of my hibernate entity, not the
> collection inside this bean.
> I would like to load the collection only when the user select an
> option in the select.
>
> Code :
> class Foo {
>  Bar bar;
>
>  void setBar(Bar bar) {
>    this.bar = bar;
>    bar.getFoos().add(this);  // this will throw a
> LazyLoadingException if I don't fetch the collections before I render
> the DropDownChoice
>  }
> }
>
> class Bar {
>  Collection<Foo> foos;
> }
>
> Is there a nice way to do that ?
>
> Thanks in advance :-)
>
> Cedric
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by James Carman <ja...@carmanconsulting.com>.
Right, I was going to suggest you not use multiple.  That does lead to
problems if you're not careful.

Anyway, in your situation, you're holding onto a "detached" object?
And, it's somehow getting loaded (huh huh, I said "getting loaded")
somewhere else during the same request?



On Thu, Sep 18, 2008 at 10:31 AM, Cédric Thiébault
<ce...@gmail.com> wrote:
> I tried both but it was worst with multiple session because entities
> were already associated in an other session and it throws
> exceptions...
>
>
> On Thu, Sep 18, 2008 at 10:17 AM, James Carman
> <ja...@carmanconsulting.com> wrote:
>> Are you using the single session setting on OSIV?  Or, are you using
>> multiple sessions?
>>
>> On Thu, Sep 18, 2008 at 9:12 AM, Cédric Thiébault
>> <ce...@gmail.com> wrote:
>>> In fact my example with the collection updating automatically was
>>> wrong... because, as it was said, the transaction is not committed at
>>> the end.
>>>
>>> But I remember other kind of problems when I wanted to save and commit
>>> my modified entities after I loaded and associated them during the
>>> request (via OSIV) :
>>> I was passing a graph of persistent objects to the manager and I had
>>> exception like "a different object with the same identifier value was
>>> already associated with the session".
>>> I tried then to use a merge but in this case I had other exception (I
>>> don't remember exactly which one)...
>>>
>>> If I don't use OSIV and pass a graph of transient object, it works fine!
>>>
>>> It must be something wrong with my hibernate mapping but it hard to locate :-(
>>>
>>> Cedric
>>>
>>>
>>> On Thu, Sep 18, 2008 at 3:26 AM, Maarten Bosteels
>>> <mb...@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I never really used OpenSessionInViewFilter, but I remember Juergen
>>>> Hoeller saying that he sometimes wished he never wrote OSIV because of
>>>> all the potential side-effects.
>>>> At the time a ridiculous big percentage of questions on the spring
>>>> forum where about OSIV.
>>>>
>>>> This was several years ago though, and I have the impression that a
>>>> lot of people are using OSIV now without problems.
>>>>
>>>> I guess it all works fine when you know what you're doing :-)
>>>>
>>>> Maarten
>>>>
>>>>
>>>> On Tue, Sep 16, 2008 at 10:28 PM, Cédric Thiébault
>>>> <ce...@gmail.com> wrote:
>>>> > Ok thanks all...
>>>> > I will read again about Hibernate sessions :-)
>>>> >
>>>> > Cedric
>>>> >
>>>> >
>>>> > On Tue, Sep 16, 2008 at 4:26 PM, Igor Vaynberg <ig...@gmail.com>wrote:
>>>> >
>>>> >> +1
>>>> >>
>>>> >> -igor
>>>> >>
>>>> >> On Tue, Sep 16, 2008 at 1:24 PM, James Carman
>>>> >> <ja...@carmanconsulting.com> wrote:
>>>> >> > +1, OSIV works for me just fine, too.  You must be doing something
>>>> >> > weird.  The OSIV doesn't commit transactions by default.  So, it
>>>> >> > shouldn't be doing anything weird.
>>>> >> >
>>>> >> > On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at>
>>>> >> wrote:
>>>> >> >>
>>>> >> >> Before dropping OpenSessionInviewFilter I'd suggest to have a more
>>>> >> thorough
>>>> >> >> look at how hibernate works. e.g. have a look at the different cascade
>>>> >> >> styles hibernate offers and also at transaction management, then it's
>>>> >> easy
>>>> >> >> to know why, and when, hibernate "commits" without explicitly calling
>>>> >> save
>>>> >> >> ... but that's no wicket topic after all. I'm using
>>>> >> opensessioninviewfilter
>>>> >> >> with loadabledetachablemodels in my webapp and never had problems ...
>>>> >> >>
>>>> >> >> just my two cents,
>>>> >> >> Michael
>>>> >> >>
>>>> >> >>
>>>> >> >> thiebal wrote:
>>>> >> >>>
>>>> >> >>> I had lots of problems with a Spring MVC webapp that was using
>>>> >> >>> OpenSessionInViewFilter : beans were associated directly in DB when
>>>> >> they
>>>> >> >>> were added to a collection (like the current Foo/Bar case) even if I
>>>> >> >>> didn't
>>>> >> >>> commit explicitly.
>>>> >> >>> Without the session opened, I can prepare all my entities and just save
>>>> >> >>> them
>>>> >> >>> and commit.
>>>> >> >>>
>>>> >> >>> I use this filter on another webapp that just load entities form DB but
>>>> >> >>> does
>>>> >> >>> not update them. It works perfectly!
>>>> >> >>>
>>>> >> >>> I though I would have the same kind of errors with Wicket because this
>>>> >> is
>>>> >> >>> not a Wicket part but just a Hibernate functionality.
>>>> >> >>>
>>>> >> >>> If in my case, I use the filter, the Bar.foos association will be
>>>> >> loaded
>>>> >> >>> just on demand but if I add it a new created Foo entity (transient), it
>>>> >> >>> will
>>>> >> >>> try to save it on flush (so before my save/commit) and I will have an
>>>> >> >>> exception.
>>>> >> >>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
>>>> >> >>>
>>>> >> >>> Cedric
>>>> >> >>>
>>>> >> >>>
>>>> >> >>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
>>>> >> >>> <ja...@carmanconsulting.com>wrote:
>>>> >> >>>
>>>> >> >>>> What problems does it cause?
>>>> >> >>>>
>>>> >> >>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>>>> >> >>>> <ce...@gmail.com> wrote:
>>>> >> >>>> > Thanks Michael.
>>>> >> >>>> >
>>>> >> >>>> > But I don't use the OpenSessionInviewFilter and I don't want to use
>>>> >> it.
>>>> >> >>>> > It creates more problems than it solves in my edit pages.
>>>> >> >>>> >
>>>> >> >>>> > The LoadableDetachableModel will load the whole list of choices, not
>>>> >> >>>> > just the one that was selected by the user.
>>>> >> >>>> > I will encounter the same error except if the
>>>> >> >>>> > LoadableDetachableModel.load method pre-fetch the associations...
>>>> >> >>>> >
>>>> >> >>>> > Cedric
>>>> >> >>>> >
>>>> >> >>>> >
>>>> >> >>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <
>>>> >> michael.sparer@gmx.at>
>>>> >> >>>> wrote:
>>>> >> >>>> >>
>>>> >> >>>> >> Use LoadableDetachableModels (and be sure that the
>>>> >> >>>> OpensessionInviewFilter
>>>> >> >>>> >> goes before the wicketfilter) and your hibernate entity will always
>>>> >> be
>>>> >> >>>> in
>>>> >> >>>> >> the right session
>>>> >> >>>> >>
>>>> >> >>>> >> regards,
>>>> >> >>>> >> Michael
>>>> >> >>>> >>
>>>> >> >>>> >> thiebal wrote:
>>>> >> >>>> >>>
>>>> >> >>>> >>> My DropDownChoice contains a list of hibernate entities that are
>>>> >> not
>>>> >> >>>> >>> fully loaded.
>>>> >> >>>> >>> But when I select a value in the dropdown I receive a
>>>> >> >>>> >>> LazyLoadingException because Wicket tries to add an entry in a
>>>> >> >>>> >>> collection that was not previously loaded.
>>>> >> >>>> >>>
>>>> >> >>>> >>> I tried to use a Converter but it is not called because
>>>> >> >>>> >>> PropertyResolverConverter set directly the value (because their
>>>> >> >>>> >>> classes are compatible) :
>>>> >> >>>> >>> if (clz.isAssignableFrom(object.getClass())) {
>>>> >> >>>> >>>   return object;
>>>> >> >>>> >>> }
>>>> >> >>>> >>>
>>>> >> >>>> >>> It works if I preload each entry in the list of choices of the
>>>> >> >>>> >>> DropDownChoice but it is very expensive. To display the dropdown,
>>>> >> I
>>>> >> >>>> >>> just need to retrieve the name of my hibernate entity, not the
>>>> >> >>>> >>> collection inside this bean.
>>>> >> >>>> >>> I would like to load the collection only when the user select an
>>>> >> >>>> >>> option in the select.
>>>> >> >>>> >>>
>>>> >> >>>> >>> Code :
>>>> >> >>>> >>> class Foo {
>>>> >> >>>> >>>   Bar bar;
>>>> >> >>>> >>>
>>>> >> >>>> >>>   void setBar(Bar bar) {
>>>> >> >>>> >>>     this.bar = bar;
>>>> >> >>>> >>>     bar.getFoos().add(this);  // this will throw a
>>>> >> >>>> >>> LazyLoadingException if I don't fetch the collections before I
>>>> >> render
>>>> >> >>>> >>> the DropDownChoice
>>>> >> >>>> >>>   }
>>>> >> >>>> >>> }
>>>> >> >>>> >>>
>>>> >> >>>> >>> class Bar {
>>>> >> >>>> >>>   Collection<Foo> foos;
>>>> >> >>>> >>> }
>>>> >> >>>> >>>
>>>> >> >>>> >>> Is there a nice way to do that ?
>>>> >> >>>> >>>
>>>> >> >>>> >>> Thanks in advance :-)
>>>> >> >>>> >>>
>>>> >> >>>> >>> Cedric
>>>> >> >>>> >>>
>>>> >> >>>> >>>
>>>> >> ---------------------------------------------------------------------
>>>> >> >>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> >>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >>>> >>>
>>>> >> >>>> >>>
>>>> >> >>>> >>>
>>>> >> >>>> >>
>>>> >> >>>> >>
>>>> >> >>>> >> -----
>>>> >> >>>> >> Michael Sparer
>>>> >> >>>> >> http://talk-on-tech.blogspot.com
>>>> >> >>>> >> --
>>>> >> >>>> >> View this message in context:
>>>> >> >>>>
>>>> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>>>> >> >>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>> >> >>>> >>
>>>> >> >>>> >>
>>>> >> >>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >>>> >>
>>>> >> >>>> >>
>>>> >> >>>> >
>>>> >> >>>> >
>>>> >> ---------------------------------------------------------------------
>>>> >> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >>>> >
>>>> >> >>>> >
>>>> >> >>>>
>>>> >> >>>> ---------------------------------------------------------------------
>>>> >> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> >>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >>>>
>>>> >> >>>>
>>>> >> >>>
>>>> >> >>>
>>>> >> >>
>>>> >> >>
>>>> >> >> -----
>>>> >> >> Michael Sparer
>>>> >> >> http://talk-on-tech.blogspot.com
>>>> >> >> --
>>>> >> >> View this message in context:
>>>> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
>>>> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>> >> >>
>>>> >> >>
>>>> >> >> ---------------------------------------------------------------------
>>>> >> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> >> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >>
>>>> >> >>
>>>> >> >
>>>> >> > ---------------------------------------------------------------------
>>>> >> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> > For additional commands, e-mail: users-help@wicket.apache.org
>>>> >> >
>>>> >> >
>>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >>
>>>> >>
>>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Cédric Thiébault <ce...@gmail.com>.
I tried both but it was worst with multiple session because entities
were already associated in an other session and it throws
exceptions...


On Thu, Sep 18, 2008 at 10:17 AM, James Carman
<ja...@carmanconsulting.com> wrote:
> Are you using the single session setting on OSIV?  Or, are you using
> multiple sessions?
>
> On Thu, Sep 18, 2008 at 9:12 AM, Cédric Thiébault
> <ce...@gmail.com> wrote:
>> In fact my example with the collection updating automatically was
>> wrong... because, as it was said, the transaction is not committed at
>> the end.
>>
>> But I remember other kind of problems when I wanted to save and commit
>> my modified entities after I loaded and associated them during the
>> request (via OSIV) :
>> I was passing a graph of persistent objects to the manager and I had
>> exception like "a different object with the same identifier value was
>> already associated with the session".
>> I tried then to use a merge but in this case I had other exception (I
>> don't remember exactly which one)...
>>
>> If I don't use OSIV and pass a graph of transient object, it works fine!
>>
>> It must be something wrong with my hibernate mapping but it hard to locate :-(
>>
>> Cedric
>>
>>
>> On Thu, Sep 18, 2008 at 3:26 AM, Maarten Bosteels
>> <mb...@gmail.com> wrote:
>>>
>>> Hi,
>>>
>>> I never really used OpenSessionInViewFilter, but I remember Juergen
>>> Hoeller saying that he sometimes wished he never wrote OSIV because of
>>> all the potential side-effects.
>>> At the time a ridiculous big percentage of questions on the spring
>>> forum where about OSIV.
>>>
>>> This was several years ago though, and I have the impression that a
>>> lot of people are using OSIV now without problems.
>>>
>>> I guess it all works fine when you know what you're doing :-)
>>>
>>> Maarten
>>>
>>>
>>> On Tue, Sep 16, 2008 at 10:28 PM, Cédric Thiébault
>>> <ce...@gmail.com> wrote:
>>> > Ok thanks all...
>>> > I will read again about Hibernate sessions :-)
>>> >
>>> > Cedric
>>> >
>>> >
>>> > On Tue, Sep 16, 2008 at 4:26 PM, Igor Vaynberg <ig...@gmail.com>wrote:
>>> >
>>> >> +1
>>> >>
>>> >> -igor
>>> >>
>>> >> On Tue, Sep 16, 2008 at 1:24 PM, James Carman
>>> >> <ja...@carmanconsulting.com> wrote:
>>> >> > +1, OSIV works for me just fine, too.  You must be doing something
>>> >> > weird.  The OSIV doesn't commit transactions by default.  So, it
>>> >> > shouldn't be doing anything weird.
>>> >> >
>>> >> > On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at>
>>> >> wrote:
>>> >> >>
>>> >> >> Before dropping OpenSessionInviewFilter I'd suggest to have a more
>>> >> thorough
>>> >> >> look at how hibernate works. e.g. have a look at the different cascade
>>> >> >> styles hibernate offers and also at transaction management, then it's
>>> >> easy
>>> >> >> to know why, and when, hibernate "commits" without explicitly calling
>>> >> save
>>> >> >> ... but that's no wicket topic after all. I'm using
>>> >> opensessioninviewfilter
>>> >> >> with loadabledetachablemodels in my webapp and never had problems ...
>>> >> >>
>>> >> >> just my two cents,
>>> >> >> Michael
>>> >> >>
>>> >> >>
>>> >> >> thiebal wrote:
>>> >> >>>
>>> >> >>> I had lots of problems with a Spring MVC webapp that was using
>>> >> >>> OpenSessionInViewFilter : beans were associated directly in DB when
>>> >> they
>>> >> >>> were added to a collection (like the current Foo/Bar case) even if I
>>> >> >>> didn't
>>> >> >>> commit explicitly.
>>> >> >>> Without the session opened, I can prepare all my entities and just save
>>> >> >>> them
>>> >> >>> and commit.
>>> >> >>>
>>> >> >>> I use this filter on another webapp that just load entities form DB but
>>> >> >>> does
>>> >> >>> not update them. It works perfectly!
>>> >> >>>
>>> >> >>> I though I would have the same kind of errors with Wicket because this
>>> >> is
>>> >> >>> not a Wicket part but just a Hibernate functionality.
>>> >> >>>
>>> >> >>> If in my case, I use the filter, the Bar.foos association will be
>>> >> loaded
>>> >> >>> just on demand but if I add it a new created Foo entity (transient), it
>>> >> >>> will
>>> >> >>> try to save it on flush (so before my save/commit) and I will have an
>>> >> >>> exception.
>>> >> >>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
>>> >> >>>
>>> >> >>> Cedric
>>> >> >>>
>>> >> >>>
>>> >> >>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
>>> >> >>> <ja...@carmanconsulting.com>wrote:
>>> >> >>>
>>> >> >>>> What problems does it cause?
>>> >> >>>>
>>> >> >>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>>> >> >>>> <ce...@gmail.com> wrote:
>>> >> >>>> > Thanks Michael.
>>> >> >>>> >
>>> >> >>>> > But I don't use the OpenSessionInviewFilter and I don't want to use
>>> >> it.
>>> >> >>>> > It creates more problems than it solves in my edit pages.
>>> >> >>>> >
>>> >> >>>> > The LoadableDetachableModel will load the whole list of choices, not
>>> >> >>>> > just the one that was selected by the user.
>>> >> >>>> > I will encounter the same error except if the
>>> >> >>>> > LoadableDetachableModel.load method pre-fetch the associations...
>>> >> >>>> >
>>> >> >>>> > Cedric
>>> >> >>>> >
>>> >> >>>> >
>>> >> >>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <
>>> >> michael.sparer@gmx.at>
>>> >> >>>> wrote:
>>> >> >>>> >>
>>> >> >>>> >> Use LoadableDetachableModels (and be sure that the
>>> >> >>>> OpensessionInviewFilter
>>> >> >>>> >> goes before the wicketfilter) and your hibernate entity will always
>>> >> be
>>> >> >>>> in
>>> >> >>>> >> the right session
>>> >> >>>> >>
>>> >> >>>> >> regards,
>>> >> >>>> >> Michael
>>> >> >>>> >>
>>> >> >>>> >> thiebal wrote:
>>> >> >>>> >>>
>>> >> >>>> >>> My DropDownChoice contains a list of hibernate entities that are
>>> >> not
>>> >> >>>> >>> fully loaded.
>>> >> >>>> >>> But when I select a value in the dropdown I receive a
>>> >> >>>> >>> LazyLoadingException because Wicket tries to add an entry in a
>>> >> >>>> >>> collection that was not previously loaded.
>>> >> >>>> >>>
>>> >> >>>> >>> I tried to use a Converter but it is not called because
>>> >> >>>> >>> PropertyResolverConverter set directly the value (because their
>>> >> >>>> >>> classes are compatible) :
>>> >> >>>> >>> if (clz.isAssignableFrom(object.getClass())) {
>>> >> >>>> >>>   return object;
>>> >> >>>> >>> }
>>> >> >>>> >>>
>>> >> >>>> >>> It works if I preload each entry in the list of choices of the
>>> >> >>>> >>> DropDownChoice but it is very expensive. To display the dropdown,
>>> >> I
>>> >> >>>> >>> just need to retrieve the name of my hibernate entity, not the
>>> >> >>>> >>> collection inside this bean.
>>> >> >>>> >>> I would like to load the collection only when the user select an
>>> >> >>>> >>> option in the select.
>>> >> >>>> >>>
>>> >> >>>> >>> Code :
>>> >> >>>> >>> class Foo {
>>> >> >>>> >>>   Bar bar;
>>> >> >>>> >>>
>>> >> >>>> >>>   void setBar(Bar bar) {
>>> >> >>>> >>>     this.bar = bar;
>>> >> >>>> >>>     bar.getFoos().add(this);  // this will throw a
>>> >> >>>> >>> LazyLoadingException if I don't fetch the collections before I
>>> >> render
>>> >> >>>> >>> the DropDownChoice
>>> >> >>>> >>>   }
>>> >> >>>> >>> }
>>> >> >>>> >>>
>>> >> >>>> >>> class Bar {
>>> >> >>>> >>>   Collection<Foo> foos;
>>> >> >>>> >>> }
>>> >> >>>> >>>
>>> >> >>>> >>> Is there a nice way to do that ?
>>> >> >>>> >>>
>>> >> >>>> >>> Thanks in advance :-)
>>> >> >>>> >>>
>>> >> >>>> >>> Cedric
>>> >> >>>> >>>
>>> >> >>>> >>>
>>> >> ---------------------------------------------------------------------
>>> >> >>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> >>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >>>> >>>
>>> >> >>>> >>>
>>> >> >>>> >>>
>>> >> >>>> >>
>>> >> >>>> >>
>>> >> >>>> >> -----
>>> >> >>>> >> Michael Sparer
>>> >> >>>> >> http://talk-on-tech.blogspot.com
>>> >> >>>> >> --
>>> >> >>>> >> View this message in context:
>>> >> >>>>
>>> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>>> >> >>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>> >> >>>> >>
>>> >> >>>> >>
>>> >> >>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >>>> >>
>>> >> >>>> >>
>>> >> >>>> >
>>> >> >>>> >
>>> >> ---------------------------------------------------------------------
>>> >> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >>>> >
>>> >> >>>> >
>>> >> >>>>
>>> >> >>>> ---------------------------------------------------------------------
>>> >> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> >>>> For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >>>>
>>> >> >>>>
>>> >> >>>
>>> >> >>>
>>> >> >>
>>> >> >>
>>> >> >> -----
>>> >> >> Michael Sparer
>>> >> >> http://talk-on-tech.blogspot.com
>>> >> >> --
>>> >> >> View this message in context:
>>> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
>>> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>> >> >>
>>> >> >>
>>> >> >> ---------------------------------------------------------------------
>>> >> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> >> For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >>
>>> >> >>
>>> >> >
>>> >> > ---------------------------------------------------------------------
>>> >> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> > For additional commands, e-mail: users-help@wicket.apache.org
>>> >> >
>>> >> >
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>> >>
>>> >>
>>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by James Carman <ja...@carmanconsulting.com>.
Are you using the single session setting on OSIV?  Or, are you using
multiple sessions?

On Thu, Sep 18, 2008 at 9:12 AM, Cédric Thiébault
<ce...@gmail.com> wrote:
> In fact my example with the collection updating automatically was
> wrong... because, as it was said, the transaction is not committed at
> the end.
>
> But I remember other kind of problems when I wanted to save and commit
> my modified entities after I loaded and associated them during the
> request (via OSIV) :
> I was passing a graph of persistent objects to the manager and I had
> exception like "a different object with the same identifier value was
> already associated with the session".
> I tried then to use a merge but in this case I had other exception (I
> don't remember exactly which one)...
>
> If I don't use OSIV and pass a graph of transient object, it works fine!
>
> It must be something wrong with my hibernate mapping but it hard to locate :-(
>
> Cedric
>
>
> On Thu, Sep 18, 2008 at 3:26 AM, Maarten Bosteels
> <mb...@gmail.com> wrote:
>>
>> Hi,
>>
>> I never really used OpenSessionInViewFilter, but I remember Juergen
>> Hoeller saying that he sometimes wished he never wrote OSIV because of
>> all the potential side-effects.
>> At the time a ridiculous big percentage of questions on the spring
>> forum where about OSIV.
>>
>> This was several years ago though, and I have the impression that a
>> lot of people are using OSIV now without problems.
>>
>> I guess it all works fine when you know what you're doing :-)
>>
>> Maarten
>>
>>
>> On Tue, Sep 16, 2008 at 10:28 PM, Cédric Thiébault
>> <ce...@gmail.com> wrote:
>> > Ok thanks all...
>> > I will read again about Hibernate sessions :-)
>> >
>> > Cedric
>> >
>> >
>> > On Tue, Sep 16, 2008 at 4:26 PM, Igor Vaynberg <ig...@gmail.com>wrote:
>> >
>> >> +1
>> >>
>> >> -igor
>> >>
>> >> On Tue, Sep 16, 2008 at 1:24 PM, James Carman
>> >> <ja...@carmanconsulting.com> wrote:
>> >> > +1, OSIV works for me just fine, too.  You must be doing something
>> >> > weird.  The OSIV doesn't commit transactions by default.  So, it
>> >> > shouldn't be doing anything weird.
>> >> >
>> >> > On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at>
>> >> wrote:
>> >> >>
>> >> >> Before dropping OpenSessionInviewFilter I'd suggest to have a more
>> >> thorough
>> >> >> look at how hibernate works. e.g. have a look at the different cascade
>> >> >> styles hibernate offers and also at transaction management, then it's
>> >> easy
>> >> >> to know why, and when, hibernate "commits" without explicitly calling
>> >> save
>> >> >> ... but that's no wicket topic after all. I'm using
>> >> opensessioninviewfilter
>> >> >> with loadabledetachablemodels in my webapp and never had problems ...
>> >> >>
>> >> >> just my two cents,
>> >> >> Michael
>> >> >>
>> >> >>
>> >> >> thiebal wrote:
>> >> >>>
>> >> >>> I had lots of problems with a Spring MVC webapp that was using
>> >> >>> OpenSessionInViewFilter : beans were associated directly in DB when
>> >> they
>> >> >>> were added to a collection (like the current Foo/Bar case) even if I
>> >> >>> didn't
>> >> >>> commit explicitly.
>> >> >>> Without the session opened, I can prepare all my entities and just save
>> >> >>> them
>> >> >>> and commit.
>> >> >>>
>> >> >>> I use this filter on another webapp that just load entities form DB but
>> >> >>> does
>> >> >>> not update them. It works perfectly!
>> >> >>>
>> >> >>> I though I would have the same kind of errors with Wicket because this
>> >> is
>> >> >>> not a Wicket part but just a Hibernate functionality.
>> >> >>>
>> >> >>> If in my case, I use the filter, the Bar.foos association will be
>> >> loaded
>> >> >>> just on demand but if I add it a new created Foo entity (transient), it
>> >> >>> will
>> >> >>> try to save it on flush (so before my save/commit) and I will have an
>> >> >>> exception.
>> >> >>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
>> >> >>>
>> >> >>> Cedric
>> >> >>>
>> >> >>>
>> >> >>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
>> >> >>> <ja...@carmanconsulting.com>wrote:
>> >> >>>
>> >> >>>> What problems does it cause?
>> >> >>>>
>> >> >>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>> >> >>>> <ce...@gmail.com> wrote:
>> >> >>>> > Thanks Michael.
>> >> >>>> >
>> >> >>>> > But I don't use the OpenSessionInviewFilter and I don't want to use
>> >> it.
>> >> >>>> > It creates more problems than it solves in my edit pages.
>> >> >>>> >
>> >> >>>> > The LoadableDetachableModel will load the whole list of choices, not
>> >> >>>> > just the one that was selected by the user.
>> >> >>>> > I will encounter the same error except if the
>> >> >>>> > LoadableDetachableModel.load method pre-fetch the associations...
>> >> >>>> >
>> >> >>>> > Cedric
>> >> >>>> >
>> >> >>>> >
>> >> >>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <
>> >> michael.sparer@gmx.at>
>> >> >>>> wrote:
>> >> >>>> >>
>> >> >>>> >> Use LoadableDetachableModels (and be sure that the
>> >> >>>> OpensessionInviewFilter
>> >> >>>> >> goes before the wicketfilter) and your hibernate entity will always
>> >> be
>> >> >>>> in
>> >> >>>> >> the right session
>> >> >>>> >>
>> >> >>>> >> regards,
>> >> >>>> >> Michael
>> >> >>>> >>
>> >> >>>> >> thiebal wrote:
>> >> >>>> >>>
>> >> >>>> >>> My DropDownChoice contains a list of hibernate entities that are
>> >> not
>> >> >>>> >>> fully loaded.
>> >> >>>> >>> But when I select a value in the dropdown I receive a
>> >> >>>> >>> LazyLoadingException because Wicket tries to add an entry in a
>> >> >>>> >>> collection that was not previously loaded.
>> >> >>>> >>>
>> >> >>>> >>> I tried to use a Converter but it is not called because
>> >> >>>> >>> PropertyResolverConverter set directly the value (because their
>> >> >>>> >>> classes are compatible) :
>> >> >>>> >>> if (clz.isAssignableFrom(object.getClass())) {
>> >> >>>> >>>   return object;
>> >> >>>> >>> }
>> >> >>>> >>>
>> >> >>>> >>> It works if I preload each entry in the list of choices of the
>> >> >>>> >>> DropDownChoice but it is very expensive. To display the dropdown,
>> >> I
>> >> >>>> >>> just need to retrieve the name of my hibernate entity, not the
>> >> >>>> >>> collection inside this bean.
>> >> >>>> >>> I would like to load the collection only when the user select an
>> >> >>>> >>> option in the select.
>> >> >>>> >>>
>> >> >>>> >>> Code :
>> >> >>>> >>> class Foo {
>> >> >>>> >>>   Bar bar;
>> >> >>>> >>>
>> >> >>>> >>>   void setBar(Bar bar) {
>> >> >>>> >>>     this.bar = bar;
>> >> >>>> >>>     bar.getFoos().add(this);  // this will throw a
>> >> >>>> >>> LazyLoadingException if I don't fetch the collections before I
>> >> render
>> >> >>>> >>> the DropDownChoice
>> >> >>>> >>>   }
>> >> >>>> >>> }
>> >> >>>> >>>
>> >> >>>> >>> class Bar {
>> >> >>>> >>>   Collection<Foo> foos;
>> >> >>>> >>> }
>> >> >>>> >>>
>> >> >>>> >>> Is there a nice way to do that ?
>> >> >>>> >>>
>> >> >>>> >>> Thanks in advance :-)
>> >> >>>> >>>
>> >> >>>> >>> Cedric
>> >> >>>> >>>
>> >> >>>> >>>
>> >> ---------------------------------------------------------------------
>> >> >>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> >>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>> >> >>>> >>>
>> >> >>>> >>>
>> >> >>>> >>>
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >> -----
>> >> >>>> >> Michael Sparer
>> >> >>>> >> http://talk-on-tech.blogspot.com
>> >> >>>> >> --
>> >> >>>> >> View this message in context:
>> >> >>>>
>> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>> >> >>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >>
>> >> ---------------------------------------------------------------------
>> >> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >> >>>> >>
>> >> >>>> >>
>> >> >>>> >
>> >> >>>> >
>> >> ---------------------------------------------------------------------
>> >> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
>> >> >>>> >
>> >> >>>> >
>> >> >>>>
>> >> >>>> ---------------------------------------------------------------------
>> >> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> >>>> For additional commands, e-mail: users-help@wicket.apache.org
>> >> >>>>
>> >> >>>>
>> >> >>>
>> >> >>>
>> >> >>
>> >> >>
>> >> >> -----
>> >> >> Michael Sparer
>> >> >> http://talk-on-tech.blogspot.com
>> >> >> --
>> >> >> View this message in context:
>> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
>> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> > ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> > For additional commands, e-mail: users-help@wicket.apache.org
>> >> >
>> >> >
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >>
>> >>
>> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Cédric Thiébault <ce...@gmail.com>.
In fact my example with the collection updating automatically was
wrong... because, as it was said, the transaction is not committed at
the end.

But I remember other kind of problems when I wanted to save and commit
my modified entities after I loaded and associated them during the
request (via OSIV) :
I was passing a graph of persistent objects to the manager and I had
exception like "a different object with the same identifier value was
already associated with the session".
I tried then to use a merge but in this case I had other exception (I
don't remember exactly which one)...

If I don't use OSIV and pass a graph of transient object, it works fine!

It must be something wrong with my hibernate mapping but it hard to locate :-(

Cedric


On Thu, Sep 18, 2008 at 3:26 AM, Maarten Bosteels
<mb...@gmail.com> wrote:
>
> Hi,
>
> I never really used OpenSessionInViewFilter, but I remember Juergen
> Hoeller saying that he sometimes wished he never wrote OSIV because of
> all the potential side-effects.
> At the time a ridiculous big percentage of questions on the spring
> forum where about OSIV.
>
> This was several years ago though, and I have the impression that a
> lot of people are using OSIV now without problems.
>
> I guess it all works fine when you know what you're doing :-)
>
> Maarten
>
>
> On Tue, Sep 16, 2008 at 10:28 PM, Cédric Thiébault
> <ce...@gmail.com> wrote:
> > Ok thanks all...
> > I will read again about Hibernate sessions :-)
> >
> > Cedric
> >
> >
> > On Tue, Sep 16, 2008 at 4:26 PM, Igor Vaynberg <ig...@gmail.com>wrote:
> >
> >> +1
> >>
> >> -igor
> >>
> >> On Tue, Sep 16, 2008 at 1:24 PM, James Carman
> >> <ja...@carmanconsulting.com> wrote:
> >> > +1, OSIV works for me just fine, too.  You must be doing something
> >> > weird.  The OSIV doesn't commit transactions by default.  So, it
> >> > shouldn't be doing anything weird.
> >> >
> >> > On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at>
> >> wrote:
> >> >>
> >> >> Before dropping OpenSessionInviewFilter I'd suggest to have a more
> >> thorough
> >> >> look at how hibernate works. e.g. have a look at the different cascade
> >> >> styles hibernate offers and also at transaction management, then it's
> >> easy
> >> >> to know why, and when, hibernate "commits" without explicitly calling
> >> save
> >> >> ... but that's no wicket topic after all. I'm using
> >> opensessioninviewfilter
> >> >> with loadabledetachablemodels in my webapp and never had problems ...
> >> >>
> >> >> just my two cents,
> >> >> Michael
> >> >>
> >> >>
> >> >> thiebal wrote:
> >> >>>
> >> >>> I had lots of problems with a Spring MVC webapp that was using
> >> >>> OpenSessionInViewFilter : beans were associated directly in DB when
> >> they
> >> >>> were added to a collection (like the current Foo/Bar case) even if I
> >> >>> didn't
> >> >>> commit explicitly.
> >> >>> Without the session opened, I can prepare all my entities and just save
> >> >>> them
> >> >>> and commit.
> >> >>>
> >> >>> I use this filter on another webapp that just load entities form DB but
> >> >>> does
> >> >>> not update them. It works perfectly!
> >> >>>
> >> >>> I though I would have the same kind of errors with Wicket because this
> >> is
> >> >>> not a Wicket part but just a Hibernate functionality.
> >> >>>
> >> >>> If in my case, I use the filter, the Bar.foos association will be
> >> loaded
> >> >>> just on demand but if I add it a new created Foo entity (transient), it
> >> >>> will
> >> >>> try to save it on flush (so before my save/commit) and I will have an
> >> >>> exception.
> >> >>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
> >> >>>
> >> >>> Cedric
> >> >>>
> >> >>>
> >> >>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
> >> >>> <ja...@carmanconsulting.com>wrote:
> >> >>>
> >> >>>> What problems does it cause?
> >> >>>>
> >> >>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
> >> >>>> <ce...@gmail.com> wrote:
> >> >>>> > Thanks Michael.
> >> >>>> >
> >> >>>> > But I don't use the OpenSessionInviewFilter and I don't want to use
> >> it.
> >> >>>> > It creates more problems than it solves in my edit pages.
> >> >>>> >
> >> >>>> > The LoadableDetachableModel will load the whole list of choices, not
> >> >>>> > just the one that was selected by the user.
> >> >>>> > I will encounter the same error except if the
> >> >>>> > LoadableDetachableModel.load method pre-fetch the associations...
> >> >>>> >
> >> >>>> > Cedric
> >> >>>> >
> >> >>>> >
> >> >>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <
> >> michael.sparer@gmx.at>
> >> >>>> wrote:
> >> >>>> >>
> >> >>>> >> Use LoadableDetachableModels (and be sure that the
> >> >>>> OpensessionInviewFilter
> >> >>>> >> goes before the wicketfilter) and your hibernate entity will always
> >> be
> >> >>>> in
> >> >>>> >> the right session
> >> >>>> >>
> >> >>>> >> regards,
> >> >>>> >> Michael
> >> >>>> >>
> >> >>>> >> thiebal wrote:
> >> >>>> >>>
> >> >>>> >>> My DropDownChoice contains a list of hibernate entities that are
> >> not
> >> >>>> >>> fully loaded.
> >> >>>> >>> But when I select a value in the dropdown I receive a
> >> >>>> >>> LazyLoadingException because Wicket tries to add an entry in a
> >> >>>> >>> collection that was not previously loaded.
> >> >>>> >>>
> >> >>>> >>> I tried to use a Converter but it is not called because
> >> >>>> >>> PropertyResolverConverter set directly the value (because their
> >> >>>> >>> classes are compatible) :
> >> >>>> >>> if (clz.isAssignableFrom(object.getClass())) {
> >> >>>> >>>   return object;
> >> >>>> >>> }
> >> >>>> >>>
> >> >>>> >>> It works if I preload each entry in the list of choices of the
> >> >>>> >>> DropDownChoice but it is very expensive. To display the dropdown,
> >> I
> >> >>>> >>> just need to retrieve the name of my hibernate entity, not the
> >> >>>> >>> collection inside this bean.
> >> >>>> >>> I would like to load the collection only when the user select an
> >> >>>> >>> option in the select.
> >> >>>> >>>
> >> >>>> >>> Code :
> >> >>>> >>> class Foo {
> >> >>>> >>>   Bar bar;
> >> >>>> >>>
> >> >>>> >>>   void setBar(Bar bar) {
> >> >>>> >>>     this.bar = bar;
> >> >>>> >>>     bar.getFoos().add(this);  // this will throw a
> >> >>>> >>> LazyLoadingException if I don't fetch the collections before I
> >> render
> >> >>>> >>> the DropDownChoice
> >> >>>> >>>   }
> >> >>>> >>> }
> >> >>>> >>>
> >> >>>> >>> class Bar {
> >> >>>> >>>   Collection<Foo> foos;
> >> >>>> >>> }
> >> >>>> >>>
> >> >>>> >>> Is there a nice way to do that ?
> >> >>>> >>>
> >> >>>> >>> Thanks in advance :-)
> >> >>>> >>>
> >> >>>> >>> Cedric
> >> >>>> >>>
> >> >>>> >>>
> >> ---------------------------------------------------------------------
> >> >>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> >>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
> >> >>>> >>>
> >> >>>> >>>
> >> >>>> >>>
> >> >>>> >>
> >> >>>> >>
> >> >>>> >> -----
> >> >>>> >> Michael Sparer
> >> >>>> >> http://talk-on-tech.blogspot.com
> >> >>>> >> --
> >> >>>> >> View this message in context:
> >> >>>>
> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
> >> >>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >>>> >>
> >> >>>> >>
> >> >>>> >>
> >> ---------------------------------------------------------------------
> >> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
> >> >>>> >>
> >> >>>> >>
> >> >>>> >
> >> >>>> >
> >> ---------------------------------------------------------------------
> >> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
> >> >>>> >
> >> >>>> >
> >> >>>>
> >> >>>> ---------------------------------------------------------------------
> >> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> >>>> For additional commands, e-mail: users-help@wicket.apache.org
> >> >>>>
> >> >>>>
> >> >>>
> >> >>>
> >> >>
> >> >>
> >> >> -----
> >> >> Michael Sparer
> >> >> http://talk-on-tech.blogspot.com
> >> >> --
> >> >> View this message in context:
> >> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> >> For additional commands, e-mail: users-help@wicket.apache.org
> >> >>
> >> >>
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> > For additional commands, e-mail: users-help@wicket.apache.org
> >> >
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Maarten Bosteels <mb...@gmail.com>.
Hi,

I never really used OpenSessionInViewFilter, but I remember Juergen
Hoeller saying that he sometimes wished he never wrote OSIV because of
all the potential side-effects.
At the time a ridiculous big percentage of questions on the spring
forum where about OSIV.

This was several years ago though, and I have the impression that a
lot of people are using OSIV now without problems.

I guess it all works fine when you know what you're doing :-)

Maarten


On Tue, Sep 16, 2008 at 10:28 PM, Cédric Thiébault
<ce...@gmail.com> wrote:
> Ok thanks all...
> I will read again about Hibernate sessions :-)
>
> Cedric
>
>
> On Tue, Sep 16, 2008 at 4:26 PM, Igor Vaynberg <ig...@gmail.com>wrote:
>
>> +1
>>
>> -igor
>>
>> On Tue, Sep 16, 2008 at 1:24 PM, James Carman
>> <ja...@carmanconsulting.com> wrote:
>> > +1, OSIV works for me just fine, too.  You must be doing something
>> > weird.  The OSIV doesn't commit transactions by default.  So, it
>> > shouldn't be doing anything weird.
>> >
>> > On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at>
>> wrote:
>> >>
>> >> Before dropping OpenSessionInviewFilter I'd suggest to have a more
>> thorough
>> >> look at how hibernate works. e.g. have a look at the different cascade
>> >> styles hibernate offers and also at transaction management, then it's
>> easy
>> >> to know why, and when, hibernate "commits" without explicitly calling
>> save
>> >> ... but that's no wicket topic after all. I'm using
>> opensessioninviewfilter
>> >> with loadabledetachablemodels in my webapp and never had problems ...
>> >>
>> >> just my two cents,
>> >> Michael
>> >>
>> >>
>> >> thiebal wrote:
>> >>>
>> >>> I had lots of problems with a Spring MVC webapp that was using
>> >>> OpenSessionInViewFilter : beans were associated directly in DB when
>> they
>> >>> were added to a collection (like the current Foo/Bar case) even if I
>> >>> didn't
>> >>> commit explicitly.
>> >>> Without the session opened, I can prepare all my entities and just save
>> >>> them
>> >>> and commit.
>> >>>
>> >>> I use this filter on another webapp that just load entities form DB but
>> >>> does
>> >>> not update them. It works perfectly!
>> >>>
>> >>> I though I would have the same kind of errors with Wicket because this
>> is
>> >>> not a Wicket part but just a Hibernate functionality.
>> >>>
>> >>> If in my case, I use the filter, the Bar.foos association will be
>> loaded
>> >>> just on demand but if I add it a new created Foo entity (transient), it
>> >>> will
>> >>> try to save it on flush (so before my save/commit) and I will have an
>> >>> exception.
>> >>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
>> >>>
>> >>> Cedric
>> >>>
>> >>>
>> >>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
>> >>> <ja...@carmanconsulting.com>wrote:
>> >>>
>> >>>> What problems does it cause?
>> >>>>
>> >>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>> >>>> <ce...@gmail.com> wrote:
>> >>>> > Thanks Michael.
>> >>>> >
>> >>>> > But I don't use the OpenSessionInviewFilter and I don't want to use
>> it.
>> >>>> > It creates more problems than it solves in my edit pages.
>> >>>> >
>> >>>> > The LoadableDetachableModel will load the whole list of choices, not
>> >>>> > just the one that was selected by the user.
>> >>>> > I will encounter the same error except if the
>> >>>> > LoadableDetachableModel.load method pre-fetch the associations...
>> >>>> >
>> >>>> > Cedric
>> >>>> >
>> >>>> >
>> >>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <
>> michael.sparer@gmx.at>
>> >>>> wrote:
>> >>>> >>
>> >>>> >> Use LoadableDetachableModels (and be sure that the
>> >>>> OpensessionInviewFilter
>> >>>> >> goes before the wicketfilter) and your hibernate entity will always
>> be
>> >>>> in
>> >>>> >> the right session
>> >>>> >>
>> >>>> >> regards,
>> >>>> >> Michael
>> >>>> >>
>> >>>> >> thiebal wrote:
>> >>>> >>>
>> >>>> >>> My DropDownChoice contains a list of hibernate entities that are
>> not
>> >>>> >>> fully loaded.
>> >>>> >>> But when I select a value in the dropdown I receive a
>> >>>> >>> LazyLoadingException because Wicket tries to add an entry in a
>> >>>> >>> collection that was not previously loaded.
>> >>>> >>>
>> >>>> >>> I tried to use a Converter but it is not called because
>> >>>> >>> PropertyResolverConverter set directly the value (because their
>> >>>> >>> classes are compatible) :
>> >>>> >>> if (clz.isAssignableFrom(object.getClass())) {
>> >>>> >>>   return object;
>> >>>> >>> }
>> >>>> >>>
>> >>>> >>> It works if I preload each entry in the list of choices of the
>> >>>> >>> DropDownChoice but it is very expensive. To display the dropdown,
>> I
>> >>>> >>> just need to retrieve the name of my hibernate entity, not the
>> >>>> >>> collection inside this bean.
>> >>>> >>> I would like to load the collection only when the user select an
>> >>>> >>> option in the select.
>> >>>> >>>
>> >>>> >>> Code :
>> >>>> >>> class Foo {
>> >>>> >>>   Bar bar;
>> >>>> >>>
>> >>>> >>>   void setBar(Bar bar) {
>> >>>> >>>     this.bar = bar;
>> >>>> >>>     bar.getFoos().add(this);  // this will throw a
>> >>>> >>> LazyLoadingException if I don't fetch the collections before I
>> render
>> >>>> >>> the DropDownChoice
>> >>>> >>>   }
>> >>>> >>> }
>> >>>> >>>
>> >>>> >>> class Bar {
>> >>>> >>>   Collection<Foo> foos;
>> >>>> >>> }
>> >>>> >>>
>> >>>> >>> Is there a nice way to do that ?
>> >>>> >>>
>> >>>> >>> Thanks in advance :-)
>> >>>> >>>
>> >>>> >>> Cedric
>> >>>> >>>
>> >>>> >>>
>> ---------------------------------------------------------------------
>> >>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>> >>>> >>>
>> >>>> >>>
>> >>>> >>>
>> >>>> >>
>> >>>> >>
>> >>>> >> -----
>> >>>> >> Michael Sparer
>> >>>> >> http://talk-on-tech.blogspot.com
>> >>>> >> --
>> >>>> >> View this message in context:
>> >>>>
>> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>> >>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >>>> >>
>> >>>> >>
>> >>>> >>
>> ---------------------------------------------------------------------
>> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >>>> >>
>> >>>> >>
>> >>>> >
>> >>>> >
>> ---------------------------------------------------------------------
>> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
>> >>>> >
>> >>>> >
>> >>>>
>> >>>> ---------------------------------------------------------------------
>> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >>>> For additional commands, e-mail: users-help@wicket.apache.org
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>
>> >>
>> >> -----
>> >> Michael Sparer
>> >> http://talk-on-tech.blogspot.com
>> >> --
>> >> View this message in context:
>> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >>
>> >>
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> > For additional commands, e-mail: users-help@wicket.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>

Re: DropDownChoice and lazy loaded choices

Posted by Cédric Thiébault <ce...@gmail.com>.
Ok thanks all...
I will read again about Hibernate sessions :-)

Cedric


On Tue, Sep 16, 2008 at 4:26 PM, Igor Vaynberg <ig...@gmail.com>wrote:

> +1
>
> -igor
>
> On Tue, Sep 16, 2008 at 1:24 PM, James Carman
> <ja...@carmanconsulting.com> wrote:
> > +1, OSIV works for me just fine, too.  You must be doing something
> > weird.  The OSIV doesn't commit transactions by default.  So, it
> > shouldn't be doing anything weird.
> >
> > On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at>
> wrote:
> >>
> >> Before dropping OpenSessionInviewFilter I'd suggest to have a more
> thorough
> >> look at how hibernate works. e.g. have a look at the different cascade
> >> styles hibernate offers and also at transaction management, then it's
> easy
> >> to know why, and when, hibernate "commits" without explicitly calling
> save
> >> ... but that's no wicket topic after all. I'm using
> opensessioninviewfilter
> >> with loadabledetachablemodels in my webapp and never had problems ...
> >>
> >> just my two cents,
> >> Michael
> >>
> >>
> >> thiebal wrote:
> >>>
> >>> I had lots of problems with a Spring MVC webapp that was using
> >>> OpenSessionInViewFilter : beans were associated directly in DB when
> they
> >>> were added to a collection (like the current Foo/Bar case) even if I
> >>> didn't
> >>> commit explicitly.
> >>> Without the session opened, I can prepare all my entities and just save
> >>> them
> >>> and commit.
> >>>
> >>> I use this filter on another webapp that just load entities form DB but
> >>> does
> >>> not update them. It works perfectly!
> >>>
> >>> I though I would have the same kind of errors with Wicket because this
> is
> >>> not a Wicket part but just a Hibernate functionality.
> >>>
> >>> If in my case, I use the filter, the Bar.foos association will be
> loaded
> >>> just on demand but if I add it a new created Foo entity (transient), it
> >>> will
> >>> try to save it on flush (so before my save/commit) and I will have an
> >>> exception.
> >>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
> >>>
> >>> Cedric
> >>>
> >>>
> >>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
> >>> <ja...@carmanconsulting.com>wrote:
> >>>
> >>>> What problems does it cause?
> >>>>
> >>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
> >>>> <ce...@gmail.com> wrote:
> >>>> > Thanks Michael.
> >>>> >
> >>>> > But I don't use the OpenSessionInviewFilter and I don't want to use
> it.
> >>>> > It creates more problems than it solves in my edit pages.
> >>>> >
> >>>> > The LoadableDetachableModel will load the whole list of choices, not
> >>>> > just the one that was selected by the user.
> >>>> > I will encounter the same error except if the
> >>>> > LoadableDetachableModel.load method pre-fetch the associations...
> >>>> >
> >>>> > Cedric
> >>>> >
> >>>> >
> >>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <
> michael.sparer@gmx.at>
> >>>> wrote:
> >>>> >>
> >>>> >> Use LoadableDetachableModels (and be sure that the
> >>>> OpensessionInviewFilter
> >>>> >> goes before the wicketfilter) and your hibernate entity will always
> be
> >>>> in
> >>>> >> the right session
> >>>> >>
> >>>> >> regards,
> >>>> >> Michael
> >>>> >>
> >>>> >> thiebal wrote:
> >>>> >>>
> >>>> >>> My DropDownChoice contains a list of hibernate entities that are
> not
> >>>> >>> fully loaded.
> >>>> >>> But when I select a value in the dropdown I receive a
> >>>> >>> LazyLoadingException because Wicket tries to add an entry in a
> >>>> >>> collection that was not previously loaded.
> >>>> >>>
> >>>> >>> I tried to use a Converter but it is not called because
> >>>> >>> PropertyResolverConverter set directly the value (because their
> >>>> >>> classes are compatible) :
> >>>> >>> if (clz.isAssignableFrom(object.getClass())) {
> >>>> >>>   return object;
> >>>> >>> }
> >>>> >>>
> >>>> >>> It works if I preload each entry in the list of choices of the
> >>>> >>> DropDownChoice but it is very expensive. To display the dropdown,
> I
> >>>> >>> just need to retrieve the name of my hibernate entity, not the
> >>>> >>> collection inside this bean.
> >>>> >>> I would like to load the collection only when the user select an
> >>>> >>> option in the select.
> >>>> >>>
> >>>> >>> Code :
> >>>> >>> class Foo {
> >>>> >>>   Bar bar;
> >>>> >>>
> >>>> >>>   void setBar(Bar bar) {
> >>>> >>>     this.bar = bar;
> >>>> >>>     bar.getFoos().add(this);  // this will throw a
> >>>> >>> LazyLoadingException if I don't fetch the collections before I
> render
> >>>> >>> the DropDownChoice
> >>>> >>>   }
> >>>> >>> }
> >>>> >>>
> >>>> >>> class Bar {
> >>>> >>>   Collection<Foo> foos;
> >>>> >>> }
> >>>> >>>
> >>>> >>> Is there a nice way to do that ?
> >>>> >>>
> >>>> >>> Thanks in advance :-)
> >>>> >>>
> >>>> >>> Cedric
> >>>> >>>
> >>>> >>>
> ---------------------------------------------------------------------
> >>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >>>
> >>>> >>>
> >>>> >>>
> >>>> >>
> >>>> >>
> >>>> >> -----
> >>>> >> Michael Sparer
> >>>> >> http://talk-on-tech.blogspot.com
> >>>> >> --
> >>>> >> View this message in context:
> >>>>
> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
> >>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>>> >>
> >>>> >>
> >>>> >>
> ---------------------------------------------------------------------
> >>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >>
> >>>> >>
> >>>> >
> >>>> >
> ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >
> >>>> >
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >> -----
> >> Michael Sparer
> >> http://talk-on-tech.blogspot.com
> >> --
> >> View this message in context:
> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: DropDownChoice and lazy loaded choices

Posted by Igor Vaynberg <ig...@gmail.com>.
+1

-igor

On Tue, Sep 16, 2008 at 1:24 PM, James Carman
<ja...@carmanconsulting.com> wrote:
> +1, OSIV works for me just fine, too.  You must be doing something
> weird.  The OSIV doesn't commit transactions by default.  So, it
> shouldn't be doing anything weird.
>
> On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at> wrote:
>>
>> Before dropping OpenSessionInviewFilter I'd suggest to have a more thorough
>> look at how hibernate works. e.g. have a look at the different cascade
>> styles hibernate offers and also at transaction management, then it's easy
>> to know why, and when, hibernate "commits" without explicitly calling save
>> ... but that's no wicket topic after all. I'm using opensessioninviewfilter
>> with loadabledetachablemodels in my webapp and never had problems ...
>>
>> just my two cents,
>> Michael
>>
>>
>> thiebal wrote:
>>>
>>> I had lots of problems with a Spring MVC webapp that was using
>>> OpenSessionInViewFilter : beans were associated directly in DB when they
>>> were added to a collection (like the current Foo/Bar case) even if I
>>> didn't
>>> commit explicitly.
>>> Without the session opened, I can prepare all my entities and just save
>>> them
>>> and commit.
>>>
>>> I use this filter on another webapp that just load entities form DB but
>>> does
>>> not update them. It works perfectly!
>>>
>>> I though I would have the same kind of errors with Wicket because this is
>>> not a Wicket part but just a Hibernate functionality.
>>>
>>> If in my case, I use the filter, the Bar.foos association will be loaded
>>> just on demand but if I add it a new created Foo entity (transient), it
>>> will
>>> try to save it on flush (so before my save/commit) and I will have an
>>> exception.
>>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
>>>
>>> Cedric
>>>
>>>
>>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
>>> <ja...@carmanconsulting.com>wrote:
>>>
>>>> What problems does it cause?
>>>>
>>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>>>> <ce...@gmail.com> wrote:
>>>> > Thanks Michael.
>>>> >
>>>> > But I don't use the OpenSessionInviewFilter and I don't want to use it.
>>>> > It creates more problems than it solves in my edit pages.
>>>> >
>>>> > The LoadableDetachableModel will load the whole list of choices, not
>>>> > just the one that was selected by the user.
>>>> > I will encounter the same error except if the
>>>> > LoadableDetachableModel.load method pre-fetch the associations...
>>>> >
>>>> > Cedric
>>>> >
>>>> >
>>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <mi...@gmx.at>
>>>> wrote:
>>>> >>
>>>> >> Use LoadableDetachableModels (and be sure that the
>>>> OpensessionInviewFilter
>>>> >> goes before the wicketfilter) and your hibernate entity will always be
>>>> in
>>>> >> the right session
>>>> >>
>>>> >> regards,
>>>> >> Michael
>>>> >>
>>>> >> thiebal wrote:
>>>> >>>
>>>> >>> My DropDownChoice contains a list of hibernate entities that are not
>>>> >>> fully loaded.
>>>> >>> But when I select a value in the dropdown I receive a
>>>> >>> LazyLoadingException because Wicket tries to add an entry in a
>>>> >>> collection that was not previously loaded.
>>>> >>>
>>>> >>> I tried to use a Converter but it is not called because
>>>> >>> PropertyResolverConverter set directly the value (because their
>>>> >>> classes are compatible) :
>>>> >>> if (clz.isAssignableFrom(object.getClass())) {
>>>> >>>   return object;
>>>> >>> }
>>>> >>>
>>>> >>> It works if I preload each entry in the list of choices of the
>>>> >>> DropDownChoice but it is very expensive. To display the dropdown, I
>>>> >>> just need to retrieve the name of my hibernate entity, not the
>>>> >>> collection inside this bean.
>>>> >>> I would like to load the collection only when the user select an
>>>> >>> option in the select.
>>>> >>>
>>>> >>> Code :
>>>> >>> class Foo {
>>>> >>>   Bar bar;
>>>> >>>
>>>> >>>   void setBar(Bar bar) {
>>>> >>>     this.bar = bar;
>>>> >>>     bar.getFoos().add(this);  // this will throw a
>>>> >>> LazyLoadingException if I don't fetch the collections before I render
>>>> >>> the DropDownChoice
>>>> >>>   }
>>>> >>> }
>>>> >>>
>>>> >>> class Bar {
>>>> >>>   Collection<Foo> foos;
>>>> >>> }
>>>> >>>
>>>> >>> Is there a nice way to do that ?
>>>> >>>
>>>> >>> Thanks in advance :-)
>>>> >>>
>>>> >>> Cedric
>>>> >>>
>>>> >>> ---------------------------------------------------------------------
>>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>
>>>> >>
>>>> >> -----
>>>> >> Michael Sparer
>>>> >> http://talk-on-tech.blogspot.com
>>>> >> --
>>>> >> View this message in context:
>>>> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>> >>
>>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>>> >>
>>>> >>
>>>> >
>>>> > ---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> > For additional commands, e-mail: users-help@wicket.apache.org
>>>> >
>>>> >
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>>
>>>
>>>
>>
>>
>> -----
>> Michael Sparer
>> http://talk-on-tech.blogspot.com
>> --
>> View this message in context: http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by James Carman <ja...@carmanconsulting.com>.
+1, OSIV works for me just fine, too.  You must be doing something
weird.  The OSIV doesn't commit transactions by default.  So, it
shouldn't be doing anything weird.

On Tue, Sep 16, 2008 at 1:07 PM, Michael Sparer <mi...@gmx.at> wrote:
>
> Before dropping OpenSessionInviewFilter I'd suggest to have a more thorough
> look at how hibernate works. e.g. have a look at the different cascade
> styles hibernate offers and also at transaction management, then it's easy
> to know why, and when, hibernate "commits" without explicitly calling save
> ... but that's no wicket topic after all. I'm using opensessioninviewfilter
> with loadabledetachablemodels in my webapp and never had problems ...
>
> just my two cents,
> Michael
>
>
> thiebal wrote:
>>
>> I had lots of problems with a Spring MVC webapp that was using
>> OpenSessionInViewFilter : beans were associated directly in DB when they
>> were added to a collection (like the current Foo/Bar case) even if I
>> didn't
>> commit explicitly.
>> Without the session opened, I can prepare all my entities and just save
>> them
>> and commit.
>>
>> I use this filter on another webapp that just load entities form DB but
>> does
>> not update them. It works perfectly!
>>
>> I though I would have the same kind of errors with Wicket because this is
>> not a Wicket part but just a Hibernate functionality.
>>
>> If in my case, I use the filter, the Bar.foos association will be loaded
>> just on demand but if I add it a new created Foo entity (transient), it
>> will
>> try to save it on flush (so before my save/commit) and I will have an
>> exception.
>> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
>>
>> Cedric
>>
>>
>> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
>> <ja...@carmanconsulting.com>wrote:
>>
>>> What problems does it cause?
>>>
>>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>>> <ce...@gmail.com> wrote:
>>> > Thanks Michael.
>>> >
>>> > But I don't use the OpenSessionInviewFilter and I don't want to use it.
>>> > It creates more problems than it solves in my edit pages.
>>> >
>>> > The LoadableDetachableModel will load the whole list of choices, not
>>> > just the one that was selected by the user.
>>> > I will encounter the same error except if the
>>> > LoadableDetachableModel.load method pre-fetch the associations...
>>> >
>>> > Cedric
>>> >
>>> >
>>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <mi...@gmx.at>
>>> wrote:
>>> >>
>>> >> Use LoadableDetachableModels (and be sure that the
>>> OpensessionInviewFilter
>>> >> goes before the wicketfilter) and your hibernate entity will always be
>>> in
>>> >> the right session
>>> >>
>>> >> regards,
>>> >> Michael
>>> >>
>>> >> thiebal wrote:
>>> >>>
>>> >>> My DropDownChoice contains a list of hibernate entities that are not
>>> >>> fully loaded.
>>> >>> But when I select a value in the dropdown I receive a
>>> >>> LazyLoadingException because Wicket tries to add an entry in a
>>> >>> collection that was not previously loaded.
>>> >>>
>>> >>> I tried to use a Converter but it is not called because
>>> >>> PropertyResolverConverter set directly the value (because their
>>> >>> classes are compatible) :
>>> >>> if (clz.isAssignableFrom(object.getClass())) {
>>> >>>   return object;
>>> >>> }
>>> >>>
>>> >>> It works if I preload each entry in the list of choices of the
>>> >>> DropDownChoice but it is very expensive. To display the dropdown, I
>>> >>> just need to retrieve the name of my hibernate entity, not the
>>> >>> collection inside this bean.
>>> >>> I would like to load the collection only when the user select an
>>> >>> option in the select.
>>> >>>
>>> >>> Code :
>>> >>> class Foo {
>>> >>>   Bar bar;
>>> >>>
>>> >>>   void setBar(Bar bar) {
>>> >>>     this.bar = bar;
>>> >>>     bar.getFoos().add(this);  // this will throw a
>>> >>> LazyLoadingException if I don't fetch the collections before I render
>>> >>> the DropDownChoice
>>> >>>   }
>>> >>> }
>>> >>>
>>> >>> class Bar {
>>> >>>   Collection<Foo> foos;
>>> >>> }
>>> >>>
>>> >>> Is there a nice way to do that ?
>>> >>>
>>> >>> Thanks in advance :-)
>>> >>>
>>> >>> Cedric
>>> >>>
>>> >>> ---------------------------------------------------------------------
>>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>>> >>>
>>> >>>
>>> >>>
>>> >>
>>> >>
>>> >> -----
>>> >> Michael Sparer
>>> >> http://talk-on-tech.blogspot.com
>>> >> --
>>> >> View this message in context:
>>> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>> >>
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> >> For additional commands, e-mail: users-help@wicket.apache.org
>>> >>
>>> >>
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> > For additional commands, e-mail: users-help@wicket.apache.org
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>
>>
>
>
> -----
> Michael Sparer
> http://talk-on-tech.blogspot.com
> --
> View this message in context: http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Michael Sparer <mi...@gmx.at>.
Before dropping OpenSessionInviewFilter I'd suggest to have a more thorough
look at how hibernate works. e.g. have a look at the different cascade
styles hibernate offers and also at transaction management, then it's easy
to know why, and when, hibernate "commits" without explicitly calling save
... but that's no wicket topic after all. I'm using opensessioninviewfilter
with loadabledetachablemodels in my webapp and never had problems ...

just my two cents,
Michael


thiebal wrote:
> 
> I had lots of problems with a Spring MVC webapp that was using
> OpenSessionInViewFilter : beans were associated directly in DB when they
> were added to a collection (like the current Foo/Bar case) even if I
> didn't
> commit explicitly.
> Without the session opened, I can prepare all my entities and just save
> them
> and commit.
> 
> I use this filter on another webapp that just load entities form DB but
> does
> not update them. It works perfectly!
> 
> I though I would have the same kind of errors with Wicket because this is
> not a Wicket part but just a Hibernate functionality.
> 
> If in my case, I use the filter, the Bar.foos association will be loaded
> just on demand but if I add it a new created Foo entity (transient), it
> will
> try to save it on flush (so before my save/commit) and I will have an
> exception.
> Maybe I'm wrong but I remember this kind of errors with Spring MVC...
> 
> Cedric
> 
> 
> On Tue, Sep 16, 2008 at 10:16 AM, James Carman
> <ja...@carmanconsulting.com>wrote:
> 
>> What problems does it cause?
>>
>> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
>> <ce...@gmail.com> wrote:
>> > Thanks Michael.
>> >
>> > But I don't use the OpenSessionInviewFilter and I don't want to use it.
>> > It creates more problems than it solves in my edit pages.
>> >
>> > The LoadableDetachableModel will load the whole list of choices, not
>> > just the one that was selected by the user.
>> > I will encounter the same error except if the
>> > LoadableDetachableModel.load method pre-fetch the associations...
>> >
>> > Cedric
>> >
>> >
>> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <mi...@gmx.at>
>> wrote:
>> >>
>> >> Use LoadableDetachableModels (and be sure that the
>> OpensessionInviewFilter
>> >> goes before the wicketfilter) and your hibernate entity will always be
>> in
>> >> the right session
>> >>
>> >> regards,
>> >> Michael
>> >>
>> >> thiebal wrote:
>> >>>
>> >>> My DropDownChoice contains a list of hibernate entities that are not
>> >>> fully loaded.
>> >>> But when I select a value in the dropdown I receive a
>> >>> LazyLoadingException because Wicket tries to add an entry in a
>> >>> collection that was not previously loaded.
>> >>>
>> >>> I tried to use a Converter but it is not called because
>> >>> PropertyResolverConverter set directly the value (because their
>> >>> classes are compatible) :
>> >>> if (clz.isAssignableFrom(object.getClass())) {
>> >>>   return object;
>> >>> }
>> >>>
>> >>> It works if I preload each entry in the list of choices of the
>> >>> DropDownChoice but it is very expensive. To display the dropdown, I
>> >>> just need to retrieve the name of my hibernate entity, not the
>> >>> collection inside this bean.
>> >>> I would like to load the collection only when the user select an
>> >>> option in the select.
>> >>>
>> >>> Code :
>> >>> class Foo {
>> >>>   Bar bar;
>> >>>
>> >>>   void setBar(Bar bar) {
>> >>>     this.bar = bar;
>> >>>     bar.getFoos().add(this);  // this will throw a
>> >>> LazyLoadingException if I don't fetch the collections before I render
>> >>> the DropDownChoice
>> >>>   }
>> >>> }
>> >>>
>> >>> class Bar {
>> >>>   Collection<Foo> foos;
>> >>> }
>> >>>
>> >>> Is there a nice way to do that ?
>> >>>
>> >>> Thanks in advance :-)
>> >>>
>> >>> Cedric
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >>> For additional commands, e-mail: users-help@wicket.apache.org
>> >>>
>> >>>
>> >>>
>> >>
>> >>
>> >> -----
>> >> Michael Sparer
>> >> http://talk-on-tech.blogspot.com
>> >> --
>> >> View this message in context:
>> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> >> For additional commands, e-mail: users-help@wicket.apache.org
>> >>
>> >>
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> > For additional commands, e-mail: users-help@wicket.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
> 
> 


-----
Michael Sparer
http://talk-on-tech.blogspot.com
-- 
View this message in context: http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19516254.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Cédric Thiébault <ce...@gmail.com>.
I had lots of problems with a Spring MVC webapp that was using
OpenSessionInViewFilter : beans were associated directly in DB when they
were added to a collection (like the current Foo/Bar case) even if I didn't
commit explicitly.
Without the session opened, I can prepare all my entities and just save them
and commit.

I use this filter on another webapp that just load entities form DB but does
not update them. It works perfectly!

I though I would have the same kind of errors with Wicket because this is
not a Wicket part but just a Hibernate functionality.

If in my case, I use the filter, the Bar.foos association will be loaded
just on demand but if I add it a new created Foo entity (transient), it will
try to save it on flush (so before my save/commit) and I will have an
exception.
Maybe I'm wrong but I remember this kind of errors with Spring MVC...

Cedric


On Tue, Sep 16, 2008 at 10:16 AM, James Carman
<ja...@carmanconsulting.com>wrote:

> What problems does it cause?
>
> On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
> <ce...@gmail.com> wrote:
> > Thanks Michael.
> >
> > But I don't use the OpenSessionInviewFilter and I don't want to use it.
> > It creates more problems than it solves in my edit pages.
> >
> > The LoadableDetachableModel will load the whole list of choices, not
> > just the one that was selected by the user.
> > I will encounter the same error except if the
> > LoadableDetachableModel.load method pre-fetch the associations...
> >
> > Cedric
> >
> >
> > On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <mi...@gmx.at>
> wrote:
> >>
> >> Use LoadableDetachableModels (and be sure that the
> OpensessionInviewFilter
> >> goes before the wicketfilter) and your hibernate entity will always be
> in
> >> the right session
> >>
> >> regards,
> >> Michael
> >>
> >> thiebal wrote:
> >>>
> >>> My DropDownChoice contains a list of hibernate entities that are not
> >>> fully loaded.
> >>> But when I select a value in the dropdown I receive a
> >>> LazyLoadingException because Wicket tries to add an entry in a
> >>> collection that was not previously loaded.
> >>>
> >>> I tried to use a Converter but it is not called because
> >>> PropertyResolverConverter set directly the value (because their
> >>> classes are compatible) :
> >>> if (clz.isAssignableFrom(object.getClass())) {
> >>>   return object;
> >>> }
> >>>
> >>> It works if I preload each entry in the list of choices of the
> >>> DropDownChoice but it is very expensive. To display the dropdown, I
> >>> just need to retrieve the name of my hibernate entity, not the
> >>> collection inside this bean.
> >>> I would like to load the collection only when the user select an
> >>> option in the select.
> >>>
> >>> Code :
> >>> class Foo {
> >>>   Bar bar;
> >>>
> >>>   void setBar(Bar bar) {
> >>>     this.bar = bar;
> >>>     bar.getFoos().add(this);  // this will throw a
> >>> LazyLoadingException if I don't fetch the collections before I render
> >>> the DropDownChoice
> >>>   }
> >>> }
> >>>
> >>> class Bar {
> >>>   Collection<Foo> foos;
> >>> }
> >>>
> >>> Is there a nice way to do that ?
> >>>
> >>> Thanks in advance :-)
> >>>
> >>> Cedric
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>> For additional commands, e-mail: users-help@wicket.apache.org
> >>>
> >>>
> >>>
> >>
> >>
> >> -----
> >> Michael Sparer
> >> http://talk-on-tech.blogspot.com
> >> --
> >> View this message in context:
> http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: DropDownChoice and lazy loaded choices

Posted by James Carman <ja...@carmanconsulting.com>.
What problems does it cause?

On Tue, Sep 16, 2008 at 9:14 AM, Cédric Thiébault
<ce...@gmail.com> wrote:
> Thanks Michael.
>
> But I don't use the OpenSessionInviewFilter and I don't want to use it.
> It creates more problems than it solves in my edit pages.
>
> The LoadableDetachableModel will load the whole list of choices, not
> just the one that was selected by the user.
> I will encounter the same error except if the
> LoadableDetachableModel.load method pre-fetch the associations...
>
> Cedric
>
>
> On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <mi...@gmx.at> wrote:
>>
>> Use LoadableDetachableModels (and be sure that the OpensessionInviewFilter
>> goes before the wicketfilter) and your hibernate entity will always be in
>> the right session
>>
>> regards,
>> Michael
>>
>> thiebal wrote:
>>>
>>> My DropDownChoice contains a list of hibernate entities that are not
>>> fully loaded.
>>> But when I select a value in the dropdown I receive a
>>> LazyLoadingException because Wicket tries to add an entry in a
>>> collection that was not previously loaded.
>>>
>>> I tried to use a Converter but it is not called because
>>> PropertyResolverConverter set directly the value (because their
>>> classes are compatible) :
>>> if (clz.isAssignableFrom(object.getClass())) {
>>>   return object;
>>> }
>>>
>>> It works if I preload each entry in the list of choices of the
>>> DropDownChoice but it is very expensive. To display the dropdown, I
>>> just need to retrieve the name of my hibernate entity, not the
>>> collection inside this bean.
>>> I would like to load the collection only when the user select an
>>> option in the select.
>>>
>>> Code :
>>> class Foo {
>>>   Bar bar;
>>>
>>>   void setBar(Bar bar) {
>>>     this.bar = bar;
>>>     bar.getFoos().add(this);  // this will throw a
>>> LazyLoadingException if I don't fetch the collections before I render
>>> the DropDownChoice
>>>   }
>>> }
>>>
>>> class Bar {
>>>   Collection<Foo> foos;
>>> }
>>>
>>> Is there a nice way to do that ?
>>>
>>> Thanks in advance :-)
>>>
>>> Cedric
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>>
>>
>>
>> -----
>> Michael Sparer
>> http://talk-on-tech.blogspot.com
>> --
>> View this message in context: http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Cédric Thiébault <ce...@gmail.com>.
Thanks Michael.

But I don't use the OpenSessionInviewFilter and I don't want to use it.
It creates more problems than it solves in my edit pages.

The LoadableDetachableModel will load the whole list of choices, not
just the one that was selected by the user.
I will encounter the same error except if the
LoadableDetachableModel.load method pre-fetch the associations...

Cedric


On Tue, Sep 16, 2008 at 3:01 AM, Michael Sparer <mi...@gmx.at> wrote:
>
> Use LoadableDetachableModels (and be sure that the OpensessionInviewFilter
> goes before the wicketfilter) and your hibernate entity will always be in
> the right session
>
> regards,
> Michael
>
> thiebal wrote:
>>
>> My DropDownChoice contains a list of hibernate entities that are not
>> fully loaded.
>> But when I select a value in the dropdown I receive a
>> LazyLoadingException because Wicket tries to add an entry in a
>> collection that was not previously loaded.
>>
>> I tried to use a Converter but it is not called because
>> PropertyResolverConverter set directly the value (because their
>> classes are compatible) :
>> if (clz.isAssignableFrom(object.getClass())) {
>>   return object;
>> }
>>
>> It works if I preload each entry in the list of choices of the
>> DropDownChoice but it is very expensive. To display the dropdown, I
>> just need to retrieve the name of my hibernate entity, not the
>> collection inside this bean.
>> I would like to load the collection only when the user select an
>> option in the select.
>>
>> Code :
>> class Foo {
>>   Bar bar;
>>
>>   void setBar(Bar bar) {
>>     this.bar = bar;
>>     bar.getFoos().add(this);  // this will throw a
>> LazyLoadingException if I don't fetch the collections before I render
>> the DropDownChoice
>>   }
>> }
>>
>> class Bar {
>>   Collection<Foo> foos;
>> }
>>
>> Is there a nice way to do that ?
>>
>> Thanks in advance :-)
>>
>> Cedric
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>>
>
>
> -----
> Michael Sparer
> http://talk-on-tech.blogspot.com
> --
> View this message in context: http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: DropDownChoice and lazy loaded choices

Posted by Michael Sparer <mi...@gmx.at>.
Use LoadableDetachableModels (and be sure that the OpensessionInviewFilter
goes before the wicketfilter) and your hibernate entity will always be in
the right session

regards,
Michael

thiebal wrote:
> 
> My DropDownChoice contains a list of hibernate entities that are not
> fully loaded.
> But when I select a value in the dropdown I receive a
> LazyLoadingException because Wicket tries to add an entry in a
> collection that was not previously loaded.
> 
> I tried to use a Converter but it is not called because
> PropertyResolverConverter set directly the value (because their
> classes are compatible) :
> if (clz.isAssignableFrom(object.getClass())) {
>   return object;
> }
> 
> It works if I preload each entry in the list of choices of the
> DropDownChoice but it is very expensive. To display the dropdown, I
> just need to retrieve the name of my hibernate entity, not the
> collection inside this bean.
> I would like to load the collection only when the user select an
> option in the select.
> 
> Code :
> class Foo {
>   Bar bar;
> 
>   void setBar(Bar bar) {
>     this.bar = bar;
>     bar.getFoos().add(this);  // this will throw a
> LazyLoadingException if I don't fetch the collections before I render
> the DropDownChoice
>   }
> }
> 
> class Bar {
>   Collection<Foo> foos;
> }
> 
> Is there a nice way to do that ?
> 
> Thanks in advance :-)
> 
> Cedric
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 


-----
Michael Sparer
http://talk-on-tech.blogspot.com
-- 
View this message in context: http://www.nabble.com/DropDownChoice-and-lazy-loaded-choices-tp19501118p19506463.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org