Repaso
English
Spring, JPA y Java WebIntermedioSPR-17

En JPA, ¿qué significan @Entity e @Id?

Opciones

  1. @Entity marca una clase mapeada a una tabla; @Id marca la primary key (Opción correcta)
  2. @Entity es un controlador REST; @Id es un parámetro de URL
  3. @Entity crea un bean; @Id es el id de un thread
  4. Ambas solo cambian cómo se escribe la clase en los logs

Respuesta

@Entity marca una clase Java que se mapea a una tabla; @Id marca el campo que es la primary key

Por qué

JPA (Jakarta Persistence API) es el estándar para mapear objetos Java a tablas relacionales (ORM). Hibernate es la implementación más popular.

@Entity dice: las instancias de esta clase son filas de una tabla. @Id marca el campo de la primary key. @GeneratedValue deja que la base de datos la genere, @Column personaliza una columna.

Toda entidad necesita un constructor sin argumentos (puede ser protected) porque el proveedor crea los objetos por reflection.

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private String email;
}

Recuerda

@Entity = objeto fila de tabla. @Id = primary key.

Términos clave

Practica esta pregunta en Repaso