javax.persistence

## Annotation Type GeneratedValue

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

Provides for the specification of generation strategies for the values of primary keys.

The `GeneratedValue` annotation may be applied to a primary key property or field of an entity or mapped superclass in conjunction with the `Id` annotation. The use of the `GeneratedValue` annotation is only required to be supported for simple primary keys. Use of the `GeneratedValue` annotation is not supported for derived primary keys.

         Example 1:

         @Id
         @GeneratedValue(strategy=SEQUENCE, generator="CUST_SEQ")
         @Column(name="CUST_ID")
         public Long getId() { return id; }

         Example 2:

         @Id
         @GeneratedValue(strategy=TABLE, generator="CUST_GEN")
         @Column(name="CUST_ID")
         Long id;

See Also:
  `Id`, `TableGenerator`, `SequenceGenerator`
Since:
  Java Persistence 1.0

### Optional Element Summary

Optional Elements
`java.lang.String` `generator` (Optional) The name of the primary key generator to use as specified in the `SequenceGenerator` or `TableGenerator` annotation.
`GenerationType` `strategy` (Optional) The primary key generation strategy that the persistence provider must use to generate the annotated entity primary key.

### Element Detail

#### strategy

    public abstract GenerationType strategy

(Optional) The primary key generation strategy that the persistence provider must use to generate the annotated entity primary key.

Default:
  javax.persistence.GenerationType.AUTO

#### generator

    public abstract java.lang.String generator

(Optional) The name of the primary key generator to use as specified in the `SequenceGenerator` or `TableGenerator` annotation.

Defaults to the id generator supplied by persistence provider.

Default:
  ""