> By the way, you can use Hibernate cache features to deal with that instead
of implementing it yourself.

Ahh ... I knew this ... but it is something I need to read up on.


> Again: each ValueEncoder method is invoked in different requests and it's
not a good idea to put object lists in memory (session).

Ok - I saw them both (model and encoder) retrieved at page load but I missed
its invocation on submit. This approach makes sense to me then.


> You're doing (bad, IMHO) premature optimization, and it is the root of all
evil. (I just love this quote :)).

Ohhh ..... well thanks for the warning! There are some obvious baddies I try
to avoid right away and this looked like double work - but I need to get my
head around hibernate caching a bit more.


> The framework does not tell you what to do: it just encourages you to
follow some proven paths, but you can choose to not follow them.

Thanks for helping illuminate the path.


Thanks,

-Luther



On Wed, Mar 4, 2009 at 2:00 PM, Thiago H. de Paula Figueiredo <
thiag...@gmail.com> wrote:

> Em Wed, 04 Mar 2009 16:50:21 -0300, Luther Baker <lutherba...@gmail.com>
> escreveu:
>
>  ... my encoder implements this method:
>>        public T toValue(String clientValue)
>>
>> So in my case, the encoder needs data from the database. I've spent cpu
>> cycles in getModel() to pull a list of items. It seems like I should
>> leverage that list when I hydrate the object back from it's screen
>> representation to an actual object ... no?
>>
>
> No. toValue() is only invoked when the form is submitted. The list loading
> happens in another request. It is not a good idea to keep the list on memory
> bacause each user session would have an enormous size. By the way, you can
> use Hibernate cache features to deal with that instead of implementing it
> yourself.
>
>  I guess - I could inject a dao or connection to the database into the
>> ValueEncoder - but on first glance, that seems like overkill ...
>>
>
> It is not. Service injection is very cheap. And tapestry-hibernate already
> provides a ValueEncoder for each entity class.
>
>  I just need to get comfortable with it. Iv'e got the list right there. It
>> can't have changed eh?
>>
>
> You're doing (bad, IMHO) premature optimization, and it is the root of all
> evil. (I just love this quote :)).
>
>  To sum up, the main issue here is that the object I'm 'toValue'ing exists
>> in the dbase (and in the model). The Wiki example for GenericSelectModel
>> queries the database two times but I think it is redundant to do so.
>>
>
> Again: each ValueEncoder method is invoked in different requests and it's
> not a good idea to put object lists in memory (session).
>
>  But again, if thats what the framework wants me to do - I'll work with it.
>>
>
> The framework does not tell you what to do: it just encourages you to
> follow some proven paths, but you can choose to not follow them.
>
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java consultant, developer, and instructor
> http://www.arsmachina.com.br/thiago
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to