# Basic mapping

Use a Basic Mapping to map an attribute directly to a database column. Basic mappings may be used only with the following attribute types:

- Java primitive types and wrappers of the primitive types

- `java.lang.String, java.math.BigInteger`

- `java.math.BigDecimal`

- `java.util.Date`

- `java.util.Calendar, java.sql.Date`

- `java.sql.Time`

- `java.sql.Timestamp`

- `byte[]`

- `Byte[]`

- `char[]`

- `Character[]`

- enums

- any other type that implements `Serializable`

To create a basic mapping:

1. In the Persistence Outline view, select the field to map. The Persistence Properties view (for attributes) displays the properties for the selected field.

2. In the Map As field, select Basic.

3. Use this table to complete the remaining fields on the Persistence Properties view.

   Property | Description | Default
   --- | --- | ---
   Map As | Defines this mapping as a Basic Mapping. This field corresponds to the `@Basic` annotation. | Basic

   Column

   The database column (and its table) mapped to the entity attribute. See "Column" for details.

   - Name – Name of the database column.

   - Table – Name of the database table.

   - Insertable – Specify if the column is always included in `SQL INSERT` statements.

   - Updatable – Specify if the column is always included in `SQL UPDATE` statements.

   By default, the Column is assumed to be named identically to the attribute and always included in the `INSERT` and `UPDATE` statements.

   Fetch Type

   Defines how data is loaded from the database. See "Fetch Type" for details.

   - Eager

   - Lazy

   Eager

   Optional | Specifies if this field is can be null. | Yes

   Temporal

   Specifies the type of data. See "Temporal" for details.

   - Date

   - Time

   - Timestamp

Eclipse adds the following annotations to the field:

    @Column(name="<COLUMN_NAME>", table="<COLUMN_TABLE>",
        insertable=<INSERTABLE>, updatable=<UPDATABLE>)
    @Basic(fetch=FetchType.<FETCH_TYPE>, optional = <OPTIONAL>)
    @Temporal(TemporalType.<TEMPORAL>)

Mapping an entity

Persistence Outline view
Persistence Properties view (for attributes)

Understanding OR mappings
Understanding JSR220: EJB 3.0