Entity сущность - что это?

Entity (Сущность) — является ключевым элементом объектно-реляционного отображения (ORM - Object-Relational Mapping), реализованного библиотекой Hibernate, согласно Java EE спецификации JPA (Java Persistence API). Основной идеей ORM (JPA) является сопоставление модели данных, реализованной с использованием Java кода и объектов (таблиц) на стороне реляционной базы данных.

Именно Entity является тем элементом Java кода, который отображается на таблицу реляционной базы данных. Entity это обычный POJO Java класс, свойства которого, отображаются на поля таблицы базы данных, а объект Entity класса, по сути своей представляет определенную запись в таблице базы данных.

И так, Entity — это обычный класс, однако EJB контейнер должен знать, что определенный класс должен быть связан с конкретной таблицей. Для этого, спецификация определяет особые аннотации или описание в XML файле. В последующих материалах будет рассматриваться именно аннотирование классов, для предоставления EJB контейнеру информации, как свойства класса будут сопоставлены с таблицей. В итоге, из этих маленьких кубиков — Entity классов и будет описана модель базы данных на стороне приложения.

На рисунке ниже представлен обычный Java класс, определяющий свойства персоны-человека, и таблица базы данных где эти данные будут храниться.

 Для простоты, личность человека представлена всего тремя свойствами:

  • lastName — фамилия;
  • firstName — имя;
  • birthday — дата рождения.
  • и еще одно служебное свойство [id] определяющее уникальный идентификатор экземпляра класса (объекта) или записи в базе данных.

Забегая вперед, можно сказать, что Hibernate позволяет, отобразить все перечисленные свойства и сам класс на таблицу базы данных, даже если имена этих свойств совершенно не будут совпадать с именами полей таблицы, и кроме того, имя класса может отличаться от имени таблицы. Основным требованием при отображении является соответствие типов полей, именно соответствие а не полное совпадение.