...
- It generates a new POJO class for every table in the schema(s) specified
- If a POJO class already exists for the table it edits the POJO file and updates it with the database definition:
- New columns are added to the existing POJO
- Removed columns are, well, removed
- Metadata is updated where applicable
- Existing code in POJO classes is mostly left alone, so it should be reasonably safe to re-run the generator on already existing code.
- It has basic support for compound primary keys; it should properly generate XxxxId classes for class Xxxx if that table as a compound primary key
- It adds all relations that are properly defined by foreign keys
- It adds @ManyToOne parent references in the child class
- It adds @OneToMany child list references as List<T> in the parent, with T the type of the child class
- This however will not work for compound PK's.
- It automatically recognizes and uses any @MappedSuperClass class as a base class for those tables that share colums with that base class.
- It generates/updates [classname].properties files with the new properties in the class, so that these files can be used as resource bundles for the property names of that class.
- It generates a class HibernateConfigurator which contains methods that add all classes to Hibernate's config.
...
Warning |
---|
The directory and package are separate, so the final directory for the classes is formed by adding the source AND the package name. |
The options supported are:
Option | Short |
---|---|
-db | Database connection string as username:password@hostname[:port]/databasename (required) |
-dbtype | The database type: postgres or oracle (required) |
-source | Specifies the root of the source directory for both existing and generated sources |
-pkg | The package name for the generated classes |
-destroy-constructors | When set, this destroys all constructors in existing Java classes. It can be used to get rid of the silliness generated by the hibernate pojo tool |
-ffr | When set all field names are forcefully renamed to the name as decided by column name and prefix. |
-frm | When set all getter and setter methods in existing classes are renamed to whatever the property name is calculated to be |
-nb, -no-bundles | Disable generation of .properties bundles |
-no-baseclass | Do not try to find base classes for new pojo's |
-no-deserial | Postgres 'serial' columns are actually just columns with a 'default' which retrieves a value from a generated sequence. By default the code will find this sequence and generate a SEQUENCE type of ID generator. Setting this option will cause the code to use the generated.IDENTITY method. |
-no-onechar-boolean | By default, all columns found that are (var)char with a size of 1 and that contain <= 2 distinct values are generated as boolean with an appropriate @Type annotation. This option disables that. |
Code Block |
---|