javax.persistence

## Annotation Type Column

-     @Target(value={METHOD,FIELD})
      @Retention(value=RUNTIME)
      public @interface Column

  Specifies the mapped column for a persistent property or field. If no `Column` annotation is specified, the default values apply.

  >         Example 1:

  >         @Column(name="DESC", nullable=false, length=512)
  >         public String getDescription() { return description; }

  >         Example 2:

  >         @Column(name="DESC",
  >                 columnDefinition="CLOB NOT NULL",
  >                 table="EMP_DETAIL")
  >         @Lob
  >         public String getDescription() { return description; }

  >         Example 3:

  >         @Column(name="ORDER_COST", updatable=false, precision=12, scale=2)
  >         public BigDecimal getCost() { return cost; }

  Since:
    Java Persistence 1.0

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `String` | `columnDefinition` (Optional) The SQL fragment that is used when generating the DDL for the column.
    `boolean` | `insertable` (Optional) Whether the column is included in SQL INSERT statements generated by the persistence provider.
    `int` | `length` (Optional) The column length.
    `String` | `name` (Optional) The name of the column.
    `boolean` | `nullable` (Optional) Whether the database column is nullable.
    `int` | `precision` (Optional) The precision for a decimal (exact numeric) column.
    `int` | `scale` (Optional) The scale for a decimal (exact numeric) column.
    `String` | `table` (Optional) The name of the table that contains the column.
    `boolean` | `unique` (Optional) Whether the column is a unique key.
    `boolean` | `updatable` (Optional) Whether the column is included in SQL UPDATE statements generated by the persistence provider.

- - ### Element Detail

    - #### name

          public abstract String name

      (Optional) The name of the column. Defaults to the property or field name.
      Default:
        ""

    - #### unique

          public abstract boolean unique

      (Optional) Whether the column is a unique key. This is a shortcut for the `UniqueConstraint` annotation at the table level and is useful for when the unique key constraint corresponds to only a single column. This constraint applies in addition to any constraint entailed by primary key mapping and to constraints specified at the table level.
      Default:
        false

    - #### nullable

          public abstract boolean nullable

      (Optional) Whether the database column is nullable.
      Default:
        true

    - #### insertable

          public abstract boolean insertable

      (Optional) Whether the column is included in SQL INSERT statements generated by the persistence provider.
      Default:
        true

    - #### updatable

          public abstract boolean updatable

      (Optional) Whether the column is included in SQL UPDATE statements generated by the persistence provider.
      Default:
        true

    - #### columnDefinition

          public abstract String columnDefinition

      (Optional) The SQL fragment that is used when generating the DDL for the column.

      Defaults to the generated SQL to create a column of the inferred type.

      Default:
        ""

    - #### table

          public abstract String table

      (Optional) The name of the table that contains the column. If absent the column is assumed to be in the primary table.
      Default:
        ""

    - #### length

          public abstract int length

      (Optional) The column length. (Applies only if a string-valued column is used.)
      Default:
        255

    - #### precision

          public abstract int precision

      (Optional) The precision for a decimal (exact numeric) column. (Applies only if a decimal column is used.) Value must be set by developer if used when generating the DDL for the column.
      Default:
        0

    - #### scale

          public abstract int scale

      (Optional) The scale for a decimal (exact numeric) column. (Applies only if a decimal column is used.)
      Default:
        0

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.