Annotation Interface SequenceGenerator


@Repeatable(SequenceGenerators.class) @Target({TYPE,METHOD,FIELD,PACKAGE}) @Retention(RUNTIME) public @interface SequenceGenerator
Defines a primary key generator backed by a database sequence. This annotation may be applied to:

Every sequence generator has a name(). If this annotation occurs on an entity class or primary key attribute of an entity class, and the name() member is not explicitly specified by the annotation, the name defaults to the name of the annotated entity. The scope of the generator name is global to the persistence unit (across all generator types).

If this annotation occurs on a package descriptor, and the name() member is not explicitly specified by the annotation, then the annotation defines a recipe for producing a default generator when a GeneratedValue annotation of any program element in the annotated package has strategy=SEQUENCE and a defaulted generator name. The name of this default generator is the defaulted generator name, and its other properties are determined by the members of the package SequenceGenerator annotation.

Example:

@SequenceGenerator(name = "EMP_SEQ", allocationSize = 25)

A named generator may be referenced by the generator element of the GeneratedValue annotation.

Since:
1.0
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    (Optional) The amount to increment by when allocating sequence numbers from the sequence.
    (Optional) The catalog of the sequence generator.
    int
    (Optional) The value from which the sequence object is to start generating.
    (Optional) A unique generator name that can be referenced by one or more classes to be the generator for primary key values.
    (Optional) A SQL fragment appended to the generated DDL statement which creates this sequence.
    (Optional) The schema of the sequence generator.
    (Optional) The name of the database sequence object from which to obtain primary key values.
  • Element Details

    • name

      String name
      (Optional) A unique generator name that can be referenced by one or more classes to be the generator for primary key values.

      Defaults to the name of the entity when the annotation occurs on an entity class or primary key attribute.

      Default:
      ""
    • sequenceName

      String sequenceName
      (Optional) The name of the database sequence object from which to obtain primary key values.

      Defaults to a provider-chosen value.

      Default:
      ""
    • catalog

      String catalog
      (Optional) The catalog of the sequence generator.
      Since:
      2.0
      Default:
      ""
    • schema

      String schema
      (Optional) The schema of the sequence generator.
      Since:
      2.0
      Default:
      ""
    • initialValue

      int initialValue
      (Optional) The value from which the sequence object is to start generating.
      Default:
      1
    • allocationSize

      int allocationSize
      (Optional) The amount to increment by when allocating sequence numbers from the sequence.
      Default:
      50
    • options

      String options
      (Optional) A SQL fragment appended to the generated DDL statement which creates this sequence.
      Since:
      3.2
      Default:
      ""