Для автоматической генерации id новых объектов сущностей Hibernate может использовать различные стратегии. Помимо тонко настраиваемых стратегий самого Hibernate, в спецификации JPA также доступны несколько стандартных стратегий, которые можно указать параметром strategy в аннотации @GeneratedValue над идентификационным полем. Здесь мы их и рассмотрим.
Читать далееАрхив рубрики: Отображение классов в таблицы
Создание кастомного генератора id через аннотацию @GenericGenerator в Hibernate
Обычно в качестве генератора id используется сиквенс базы данных, который Hibernate создаёт автоматически, когда мы указываем над идентификационным полем аннотацию @GeneratedValue(strategy = GenerationType.SEQUENCE) или @GeneratedValue(strategy = GenerationType.AUTO). Этот сиквенс можно настроить: задать ему имя и первоначальное значение. Кроме того, вместо сиквенса можно настроить использование других методов генерации id, если, например, СУБД не поддерживает синквенсы.
Читать далееРазница между сущностями (entity) и значениями (value) в объектно-реляционном отображении
При работе с Hibernate и другими ОРМ принято придерживаться принципа глубокой детализации предметной области (fine-grained domain model), что обычно означает, что классов с данными в приложении должно быть больше, чем таблиц в базе данных. Это достигается за счёт разделения классов на сущности и значения.
Читать далее