FFL2:FFL2 Main/Hibernate Reverse Engineering

From FFL Wiki
Jump to navigation Jump to search

To reverse engineer the hibernate mappings and objects from the schema some additional setup is required.

Note that in this example a VMWare image is being used to run MySQL, this is because MySQL is case-insensitive on Windows and always returns table names in lower case. This causes two problems

  1. Generated class names won't be capitalised as we would like
  2. The generated config won't work on Linux

Install Hibernate Tools Eclipse plugin

Create a Hibernate configuration in Eclipse

Open the Hibernate perspective then right-click and choose 'Add Configuration...' in the Hibernate Configurations view. Set up the 'Main' and 'Options' tabs as shown below


When creating the database connection under 'Main' using the 'New...' button, the JAR file for the driver to use needs to be specified by clicking the triangle next to the 'Drivers' drop-down

Finally, click 'Test Connection' to check it is ok.


Create the Reverse Engineering Configuration

Choose 'Run | Hibernate Code Generation | Hibernate Code Generation Configurations...' and create a new 'Hibernate Code Generation' configuration called 'Reverse Engineer FFL Model from DB'. Configure the 'Main' and 'Exporters' tabs as shown below.

There are a couple of points to note:

  1. We use and output directory of \fantacycore\hibernate_gen_src to avoid overwriting our existing code. We will merge in the changes we want.
  2. uk.org.fantacy.reveng.FantacyReverseEngineeringStrategy is a custom reverse engineering strategy which was written to make sure the generated one-to-many and many-to-many associations have appropriate names. If you add a new table whose name would not be made plural by simply adding 's' (e.g. history -> histories) then you may need to update this.