# About Reverse Generation

With reverse generation, you first define your database tables (and views, synonyms, and snapshots), and then use them to create entity objects and associations with one or more of the following tools:

- Entity Object Wizard or Editor

- Business Components Project Wizard

- Package Wizard or Editor

Your team usually starts with a UML diagram, and the database administrator creates a table for each entity in the diagram. The table has columns corresponding to the attributes of the entities, and has database constraints based on the relationships between the entities. The tables are used to create the initial definitions of entity objects and associations using the business components wizards. After, programmers modify these business components to implement the program's business logic.

Business Components for Java wizards attempt to translate the database data types into the corresponding business component data types. The type may be a Java type or a domain. If there is not a default data type for a data type in your database, you should create a domain for it before starting reverse generation. Otherwise, the column will be omitted from the default entity object, and you will need to add it using the Entity Object Editor later. Note that nested tables and varrays are mapped to oracle.jbo.domain.Array.

The wizards also translate many database constraints into the business logic tier:

- Primary key constraints cause the primary key attribute setting to be set.

- Referential integrity constraints (foreign key constraints) become associations or compositions.

- Check constraints are not translated into the business logic tier.

Related topics
About the Development Process
About Generating Entity Objects, Associations, and Database Tables
About Forward Generation
What Is an Entity Object?
What Is an Entity Attribute?
Business Component Data Types