I had a problem after refactoring entity objects in Jdev and these blogs helped....
one-size-doesnt-fit-all
employee and department tables. Each department (parent key) has many employees (foreign key), and some employees might not be in a department (nulls in the foreign key).UNIQUE constraint is defined on the foreign key, only one row in the child table can reference a given parent key value. This model allows nulls in the foreign key.MEMBERNO, referring to an employee membership number in the company insurance plan. Also, a table named INSURANCE has a primary key named MEMBERNO, and other columns of the table keep respective information relating to an employee insurance policy. The MEMBERNO in the employee table should be both a foreign key and a unique key:EMP_TAB and INSURANCE tables (the FOREIGN KEY constraint)UNIQUE key constraint)UNIQUE and NOT NULL constraints are defined on the foreign key, only one row in the child table can reference a given parent key value, and because NULL values are not allowed in the foreign key, each row in the child table must explicitly reference a value in the parent key.NOT NULL constraint on the MEMBERNO column of the employee table, in addition to guaranteeing that each employee has a unique membership number, you also ensure that no undetermined values (nulls) are allowed in the MEMBERNO column of the employee table.| SQL Data Types | JDBC Type Codes | Standard Java Types | Oracle Extension Java Types |
| | STANDARD JDBC TYPES: | | |
| CHAR | java.sql.Types.CHAR | java.lang.String | oracle.sql.CHAR |
| VARCHAR2 | java.sql.Types.VARCHAR | java.lang.String | oracle.sql.CHAR |
| LONG | java.sql.Types.LONGVARCHAR | java.lang.String | oracle.sql.CHAR |
| NUMBER | java.sql.Types.NUMERIC | java.math.BigDecimal | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.DECIMAL | java.math.BigDecimal | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.BIT | boolean | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.TINYINT | byte | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.SMALLINT | short | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.INTEGER | int | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.BIGINT | long | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.REAL | float | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.FLOAT | double | oracle.sql.NUMBER |
| NUMBER | java.sql.Types.DOUBLE | double | oracle.sql.NUMBER |
| RAW | java.sql.Types.BINARY | byte[] | oracle.sql.RAW |
| RAW | java.sql.Types.VARBINARY | byte[] | oracle.sql.RAW |
| LONGRAW | java.sql.Types.LONGVARBINARY | byte[] | oracle.sql.RAW |
| DATE | java.sql.Types.DATE | java.sql.Date | oracle.sql.DATE |
| DATE | java.sql.Types.TIME | java.sql.Time | oracle.sql.DATE |
| TIMESTAMP | java.sql.Types.TIMESTAMP | javal.sql.Timestamp | oracle.sql.TIMESTAMP |
| BLOB | java.sql.Types.BLOB | java.sql.Blob | oracle.sql.BLOB |
| CLOB | java.sql.Types.CLOB | java.sql.Clob | oracle.sql.CLOB |
| user-defined object | java.sql.Types.STRUCT | java.sql.Struct | oracle.sql.STRUCT |
| user-defined reference | java.sql.Types.REF | java.sql.Ref | oracle.sql.REF |
| user-defined collection | java.sql.Types.ARRAY | java.sql.Array | oracle.sql.ARRAY |
| ROWID | java.sql.Types.ROWID | java.sql.RowId | oracle.sql.ROWID |
| NCLOB | java.sql.Types.NCLOB | java.sql.NClob | oracle.sql.NCLOB |
| NCHAR | java.sql.Types.NCHAR | java.lang.String | oracle.sql.CHAR |
| | ORACLE EXTENSIONS: | | |
| BFILE | oracle.jdbc.OracleTypes.BFILE | NA | oracle.sql.BFILE |
| REF CURSOR | oracle.jdbc.OracleTypes.CURSOR | java.sql.ResultSet | oracle.jdbc.OracleResultSet |
| TIMESTAMP | oracle.jdbc.OracleTypes.TIMESTAMP | java.sql.Timestamp | oracle.sql.TIMESTAMP |
| TIMESTAMP WITH TIME ZONE | oracle.jdbc.OracleTypes.TIMESTAMPTZ | java.sql.Timestamp | oracle.sql.TIMESTAMPTZ |
| TIMESTAMP WITH LOCAL TIME ZONE | oracle.jdbc.OracleTypes.TIMESTAMPLTZ | java.sql.Timestamp | oracle.sql.TIMESTAMPLTZ |