При автоматической генерации схемы БД на основе классов предметной области спецификация JPA и Hibenate, как её реализация, позволяют очень гибко настраивать имена таблиц, соответствующих сущностям.
Читать далееАрхив рубрики: Hibernate
Выбор стратегии аннотации @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), что обычно означает, что классов с данными в приложении должно быть больше, чем таблиц в базе данных. Это достигается за счёт разделения классов на сущности и значения.
Читать далееHibernate. Использование именованных запросов (@NamedQueries) на уровне пакета
Создадим именованный запрос в файле package-info.java, который в дальнейшем будет вызываться по строке с именем. Именованные запросы, вызываемые через методы репозитория, рассмотрены в другой статье.
Читать далееHibernate. Использование именованных запросов (@NamedQueries) на уровне класса
Создадим именованный запрос над классом сущности, который в дальнейшем будет вызываться через специальный метод в репозитории. Именованные запросы, вызываемые через методы репозитерия, рассмотрены в другой статье.
Читать далее