Архив рубрики: Отображение классов в таблицы

Выбор стратегии аннотации @GeneratedValue при настройке генерации id в Hibernate

Для автоматической генерации 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), что обычно означает, что классов с данными в приложении должно быть больше, чем таблиц в базе данных. Это достигается за счёт разделения классов на сущности и значения.

Читать далее