Because the database data types are in SQL and the business logic tier types are in Java, Business Components for Java needs to translate between the two:
If you let a wizard generate default entity objects, it uses the predefined data type mappings. For Oracle Object Types and types that do not have predefined mappings, it attempts to create a domain for the type.You can change the data type after reverse generation, if needed.
If you create an entity object by using the Entity Object Wizard, you can specify what data types and domains to map to your database columns before reverse generation. You can create custom domains for certain column types, such as Oracle Object Types.
If you aren't going to have the wizard generate domains for you, you need to create them yourself. In general, you follow the steps in Representing an Oracle Object Type with a User-defined Domain.
Also, there are specific techniques for complex or nested objects:
You cannot create a domain for nested tables.
Forward generation of Oracle Objects from entity objects is not supported.