Ответ
Entity (Сущность) в JPA (Java Persistence API) — это легковесный Java-объект (POJO), состояние которого постоянно хранится в таблице реляционной базы данных. Класс помечается аннотацией @Entity.
Ключевые требования и аннотации:
@Entity: Обязательная аннотация для класса.@Id: Обозначает поле, являющееся первичным ключом.@GeneratedValue: Задает стратегию генерации значений для первичного ключа (например, автоинкремент).@Table: Опционально, задает имя таблицы. По умолчанию используется имя класса.@Column: Опционально, задает имя столбца и другие атрибуты.
Пример Entity:
@Entity
@Table(name = "users") // Соответствует таблице "users" в БД
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // Автоинкремент
private Long id;
@Column(name = "user_name", nullable = false, length = 100)
private String username;
// Обязательный конструктор по умолчанию (JPA requirement)
public User() {}
// Геттеры и сеттеры для всех полей
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
// ... остальные геттеры/сеттеры
}
Важные особенности:
- Должен иметь конструктор без аргументов (может быть
protected). - Поля обычно имеют
privateдоступ и управляются через геттеры/сеттеры. - Может содержать связи с другими Entity (аннотации
@OneToMany,@ManyToOneи т.д.). - Entity представляет собой модель данных для работы с БД, в отличие от DTO, который используется для передачи данных.