Thanks Michael. This is useful. I think I am persisting too much in my
Tapestry Cayenne app and would like to view other apps to see how they
avoid the temptation to @Persist.

I too am using tomcat for deployment. Fortunately I don't have any huge
forms.

Tim

> On 12/5/21 22:02, Michael Gentry wrote:
>> Hi Tim!
>>
>> The Tapestry+Cayenne apps I worked on weren't open source, but the
>> combination worked amazingly well for us.
>>
>> In the largest one, we had a small user base, but the object graph being
>> edited could be 100s or for a few, over 1000 records [1]. Because the
>> number of records could take a while to load in from the database and
>> because our validations had to traverse the entire object graph every time,
>> we chose to make the app session-based. Didn't have any issues with the
>> object graph being in session and Tapestry did a great job reading the data
>> from the Cayenne object graph to edit in the UI and pushing all the data
>> back to the Cayenne object graph on submit where we could re-validate.
>>
>> Our save button was essentially dataContext.commitChanges(), with a
>> try/catch block around it to handle errors. This was a HUGE advantage over
>> having to micromanage each individual record like you'd do with
>> Hibernate/JPA -- plus no LazyInitializationExceptions ever.
>>
>> My memory is a little fuzzy here, but I believe we had custom encoders for
>> Tapestry to tell it how to identify Cayenne objects, especially when you
>> were iterating over them. We had a common Cayenne superclass for all of our
>> objects that implemented this to make it simpler and allow us to re-use a
>> generic encoder. I believe this identifier (t5id) was simply a dynamic UUID
>> we'd generate for every Cayenne object when needed. No need to persist it
>> and it didn't have to be the same ID across sessions as it was only for
>> Tapestry to identify objects when doing a submit.
>>
>> mrg
>>
>> [1] We learned the hard way that Tomcat has a default limit of 10k form
>> inputs because one of our users was reporting data wasn't saving at the
>> BOTTOM of the page, but was saving at the TOP. To make it worse, Tomcat
>> just silently ignores anything after 10k inputs -- no error/exception/etc.
>> Had to adjust Tomcat to accept an unlimited number of inputs to get their
>> data saving again.
>>
>>
>> On Wed, May 12, 2021 at 6:50 AM D Tim Cummings <t...@triptera.com.au.invalid>
>> wrote:
>>
>>> Does anyone know of any good open-source Cayenne Tapestry apps that show
>>> best practice and latest features for using these two frameworks
>>> together? Most of the Tapestry examples use Hibernate.
>>>
>>> Tim
>>>
>>>
>>>
>>>
>>>


Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to