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 > > > >