En JPA, ¿qué significan @Entity e @Id?
Opciones
@Entitymarca una clase mapeada a una tabla;@Idmarca la primary key (Opción correcta)@Entityes un controlador REST;@Ides un parámetro de URL@Entitycrea un bean;@Ides el id de un thread- 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.