Every entity must have a persistent identity, which is an equivalent of a primary key in a database table that stores the entity state.
By default, the EclipseLink persistence provider assumes that each entity has at least one field or property that serves as a primary key.
You can generate and/or configure the identity of your entities by using the following annotations:
@Id
@IdClass
@EmbeddedId
@GeneratedValue
@TableGenerator
@SequenceGenerator
@UuidGenerator
You can also use these annotations to fine-tune how your database maintains the identity of your entities. For more information on these annotations, see "Metadata for Object/Relational Mapping" in the JPA Specification.