В документе спецификации JPA (версия 2.2) все сказано на странице 23:
Сущность - это легкий объект постоянного домена .
По сути, Entity
- это всего лишь маркер, который может сохранять определенный тип типа в некотором постоянном хранилище, обычно (реляционной) базе данных.Однако он не определяет, каким образом отношения с другими типами отображаются / выражаются в этой области.
В контексте ORM такие доменные объекты (т. Е. Экземпляры определенного типа в домене) сопоставляются со схемой базы данных, которая - в реляционных базах данных - выражается какнабор таблиц .
Для правильного отображения отношений n: m (@ManyToMany
) могут потребоваться дополнительные структуры в хранилище постоянства, как правило,выражается в дополнительной таблице, например, TableA_TableB
.Таким образом, нельзя утверждать, что сущность всегда точно соответствует одной таблице, в частности, когда необходимы связи с другими типами.
С точки зрения двунаправленности, таблицы в (реляционной) базе данныхне обязательно могут быть сопоставлены с типами доменов в том смысле, что они будут точно представлять тип домена.Или другими словами: кортежи / строки в реляционной таблице не обязательно соответствуют экземпляру (объекту) определенного типа .Для справки и дополнительной информации см. Теория нормализации базы данных Майка Хиллиера.
Надеюсь, что это поможет.