Primary Keys
A primary key is the identity of a given entity
bean. Every entity bean must have a primary key, and it must be unique.
Primary keys can map to one or more properties and must map to one of the
following types: any Java primitive type (including wrappers), java.lang.String, or a primary-key class
composed of primitives and/or strings. Let’s first focus on simple
one-property primary keys.
@Id
The @javax.persistence.Id
annotation identifies one or more properties that make up the primary
key for your table:
package javax.persistence;
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface Id
{
}You can generate the primary key for your entity beans manually or
have the persistence provider do it for you. When you want
provider-generated keys, you have to use the @javax.persistence.GeneratedValue annotation:
package javax.persistence;
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface GeneratedValue
{
GenerationType strategy() default AUTO;
String generator() default "";
}
public enum GenerationType
{
TABLE, SEQUENCE, IDENTITY, AUTO
}Persistence providers are required to provide key generation for
primitive primary keys. You can define the type of primary generator you
would like to have using the strategy() attribute. The GeneratorType.AUTO strategy is the most
commonly used configuration, and it is the default:
/** * Primary key */ @Id @GeneratedValue private Long id;
Table Generators
The TABLE strategy designates a user-defined relational table from which ...