Entity
Entity — объект с устойчивой идентичностью
Entity — Java-класс, экземпляры которого JPA может хранить в базе данных и восстанавливать обратно. Обычно такой класс соответствует таблице, а его поля — столбцам, хотя отображение можно настраивать.
@Entity
public class User {
@Id
private Long id;
private String name;
}
Аннотация @Entity говорит provider, что класс участвует в persistence-модели.
Поле с @Id задаёт первичный ключ — значение, по которому экземпляр Entity однозначно идентифицируется.
Entity остаётся обычным Java-объектом
У Entity могут быть методы, конструкторы и обычная бизнес-логика.
Но JPA накладывает несколько требований на её устройство: класс должен быть доступен provider,
а состояние, которое нужно хранить, должно быть описано через поля или свойства.
Обычно Entity также имеет конструктор без аргументов хотя бы с protected-доступом.
protected User() {
}
public User(Long id, String name) {
this.id = id;
this.name = name;
}
Имена таблиц и столбцов можно настроить
@Entity
@Table(name = "users")
public class User {
@Id
@Column(name = "user_id")
private Long id;
}
Если соглашения по умолчанию подходят проекту, каждое имя указывать не обязательно. Явное отображение полезно, когда структура базы уже существует или её имена отличаются от Java-модели.