http://www.hibernate.org/42.html
http://members.capmac.org/~orb/blog.cgi/tech/java/Seam__first_impress.html
Actually webapps and rich clients have quite a lot in common. We are using the session-per-conversation pattern (keep a single Session with the objects being edited in the rich client; keep the Session disconnected during user think time; when pushing changes to the database, connect the Session, open a transaction, save the changes, commit, and disconnect again).
Here's another thread on how to handle versioning issues in this situation:
http://forum.hibernate.org/viewtopic.php?p=2266139#2266139
Cheers!
Rob