Its an optimistic locking strategy provided by Hibernate. If you give your mapping a <version /> element, when you try to update an object Hibernate will check whether the value of the version contained in the object matches that held in the database. If they don't match Hibernate throws a StaleObjectException. If they do Hibernate updates the object incrementing the version.
Is optimistic locking something your application needs?
You would add a version field your table, with an integral or date data type and map this field to the <version /> element in your mapping. You don't need to set the value of this Hibernate will do it for you.