I had some troubles with a project this article helped me to solve.
UUID may be hard to debug though...
Even if hibernate experts and some others don't like this approach, it is easy to understand for a developper like me (understand, with little experience).
Just note that I had to make AbstractPersistentObject implement the Serializable interface, because fetched objects were exposed through RMI services with Spring. Without this, IDs and version informations were lost while going to the RMI's client side.