I see your point. On the long run, your advice will pay off, I guess.
Thanks a lot for your explanations!
Martin
alexworden wrote:
>
> On Mon, Apr 28, 2008 at 11:11 AM, Martin Homik <[EMAIL PROTECTED]> wrote:
>>
>> I actually tried to solve the problem by using OGNL.
>>
>> <s:iterator value="myGroups">
>> Group name: <s:property value="name"/>
>> Size: <s:property value='members.size()'/> members
>> </s:iterator>
>>
>> In my second attempt, I called a non-property method:
>>
>> In JSP:
>> ...
>> Size: <s:property value='membersSize()'/> members
>> ...
>> In POJO:
>> @Transient
>> public int getMembersSize() {
>> return members.size();
>> }
>>
>>
>> In both cases I ended up with a LazyInitializationException.
>
> That's because you're not solving anything by pushing the call down
> deeper. it's *when* you make the call that is broken, not *where*.
> You're thread is no longer inside the DB transaction by the time
> you're rendering your page. You need to calculate the size before you
> leave the transaction... which is probably in your action.
>
> As I say though - be aware of how much work you're asking Hibernate to
> perform by calling .size(). This is not practical and you're better
> off maintaining a count on your Group object and persisting that in
> the DB. Think about it... it's a lot of work to count all those
> members every time! Your application will never scale if you don't
> think about these things ahead of time.
>
> Matt is suggesting that you uncomment the OpenSessionInViewFilter so
> that the DB session is still alive when the thread is rendering your
> page. That might work, but it is not a good solution in this case.
>
> Unless... I'm missing something w.r.t. some devious Hibernate proxy
> that automatically maintains a count for you under the covers. I
> highly doubt it does this though.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/How-to-access-collection-fields-in-Struts2--tp16941170s2369p16945856.html
Sent from the AppFuse - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]