The Envers project aims to enable easy versioning of persistent JPA classes. All that you have to do is annotate your persistent class or some of its properties, that you want to version, with @Versioned. For each versioned entity, a table will be created, which will hold the history of changes made to the entity. You can then retrieve and query historical data without much effort.
Similarly to Subversion, the library has a concept of revisions. Basically, one transaction commit is one revision (unless the transaction didn't modify any versioned entities). As the revisions are global, having a revision number, you can query for various entities at that revision, retrieving a (partial) view of the database at that revision.
Hibernate Synchronizer is a free Eclipse plugin code generation tool to be used with the Hibernate persistence framework. The plugin will automatically generate java code when your hibernate mapping files are modified. Objects are created with generated code in an abstract base class and a user-modifiable extension class so user code does not get deleted when the generation is performed.
The automaticallly generated objects include:
* Value Objects
* Proxy Interfaces
* Composite Key Objects
* Enumeration Objects
* Component Objects
* Subclasses
* DAOs
Other features include:
* Editor with code assist and outline view
* Custom template generation
* New mapping file wizard that queries your database
* New configuration file wizard
* Actions for adding mapping references, synchronizing files, and manually activating code generation