231 words

javax.persistence.GeneratedValue - JPA annotation

javax.persistence
Annotation GeneratedValue

Target:
Fields (including property get methods)
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;

Since:
JPA 1.0
See Also:
Id
TableGenerator
SequenceGenerator
Learn how to define and use automatic value generation in Chapter 2 of the ObjectDB/JPA manual.
String generator
(Optional) The name of the primary key generator to use as specified in the SequenceGenerator or TableGenerator annotation.
(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 value:
""
Since:
JPA 1.0
(Optional) The primary key generation strategy that the persistence provider must use to generate the annotated entity primary key.
(Optional) The primary key generation strategy that the persistence provider must use to generate the annotated entity primary key.
Default value:
javax.persistence.GenerationType.AUTO
Since:
JPA 1.0

This documentation page is derived (with some adjustments) from the open source JPA 2 RI (EclipseLink)
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
Object Relational Mapping (ORM) JPA 2 providers include Hibernate, EclipseLink, TopLink, OpenJPA and DataNucleus.
Object DB is not an ORM JPA implementation but an Object Database for Java with built in JPA 2 support.