Really, deletions are the same as the additions and modifications in this scenario. A fish might get added to the domain model on page 2 but not persisted until page 6 (I don't know your page flow, but you get the jist).
The simpliest approach to this is what Hibernate terms "Detached Object Support". Your concerns about this approach are handled through Hibernate's cascade machinery. Do a search on the Hibernate site for "detached objects" for more information.
The other approach would be diconnected sessions. Hibernate lets you work with a session, disconnect it, reconnect it, and do more work with it. Keep in mind here that Hibernate does not synchronize the database state with the in-memory model state until the session is flushed. I have not played with this approach much, but i would think you would also need to come up with a scheme to utilize serializable transactions and come up with a scheme to suspend/resume the transactions at appropriate times.
|