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 >>> >>> >>> >>> >>>
OpenPGP_signature
Description: OpenPGP digital signature