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 ...
Get Enterprise JavaBeans 3.1, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.