I was just taking a look at Tapernate for the first time and I was hoping James or someone familiar with it could verify my understanding of how it works and clear up a few things:
- Persistent properties are squeezed/unsqueezed based on their Hibernate session identity. - The @Persist("entity") persistence strategy differs from regular session persistence in that it merges persistent objects into the Hibernate session in getStoredChanges(). From the docs, getStoredChanges() usually happens when you want to roll back a page to a previous state. If that is the case, how does Tapestry know you want to roll a page back to a previous state (is it when the validation delegate fails or something)? Or am I misunderstanding what the "entity" strategy is intended to do? - In the Tapernate demo, object properties are modified directly and if there is a problem of some sort, the transaction is rolled back. This way all changes made by the user are committed or rolled back. This seems related to the "entity" strategy in that I would not want partially successful submissions persisted to the database, but I also don't want to lose any user input (and the validation delegate only stores input from those fields with invalid input). So then are the successful changes in a partially successful submission stored in the object in the Hibernate session? Thanks in advance for any info, this looks like a great library. Ben