I have been in a somewhat similar situation as you described. What I found worked best was to use an UPDATE statement that was executed against the database. See
http://docs.jboss.org/hibernate/stable/ ... tch-direct for some more information.
I could use this because I knew that this particular property could only be updated by a specific piece of code.
You may also consider <class dynamic-update="true" optimistic-lock="dirty"> (or whatever the equivalent is with annotations). This is a more generic solution and will generate updates dynamically based on what properties that has changed.