javax.persistence

## Annotation Type OrderColumn

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

  Specifies a column that is used to maintain the persistent order of a list. The persistence provider is responsible for maintaining the order upon retrieval and in the database. The persistence provider is responsible for updating the ordering upon flushing to the database to reflect any insertion, deletion, or reordering affecting the list.

  The `OrderColumn` annotation is specified on a OneToMany or ManyToMany relationship or on an element collection. The `OrderColumn` annotation is specified on the side of the relationship that references the collection that is to be ordered. The order column is not visible as part of the state of the entity or embeddable class.

  The `OrderBy` annotation should be used for ordering that is visible as persistent state and maintained by the application. The `OrderBy` annotation is not used when `OrderColumn` is specified.

  The order column must be of integral type. The persistence provider maintains a contiguous (non-sparse) ordering of the values of the order column when updating the association or element collection. The order column value for the first element is 0.

          Example:

          @Entity
          public class CreditCard {

             @Id long ccNumber;

             @OneToMany  // unidirectional
             @OrderColumn
             List<CardTransaction> transactionHistory;
             ...
          }

  Since:
    Java Persistence 2.0
  See Also:
    `OrderBy`

- - ### 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.
    `String` | `name` (Optional) The name of the ordering column.
    `boolean` | `nullable` (Optional) Whether the database column is nullable.
    `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 ordering column. Defaults to the concatenation of the name of the referencing property or field; "_"; "ORDER".
      Default:
        ""

    - #### 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 generated SQL to create a column of the inferred type.
      Default:
        ""

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