Архив автора: admin

Использование в Hibernate аннотаций @DynamicInsert и @DynamicUpdate для создания SQL инструкций вставки и обновления во время выполнения

Чтобы Hibernate не создавал SQL запросы на вставку и обновление строк заранее, на этапе запуска приложения, а делал это каждый раз во время непосредственно вставки/обновления, можно использовать аннотации @DynamicInsert и @DynamicUpdate.

Читать далее

Использование аннотации @Entity для решения конфликтов имён в JPA запросах при наличии классов предметной области с одинаковыми именами

Может так сложиться, что в проекте будет некоторое количество классов предметной области с одинаковыми именами, но расположенные в разных пакетах. Например, два класса Client. Им могут быть сопоставлены разные таблицы, но в JPA запросах вида «select c from Client c» будет иметь место неоднозначность. Чтобы эту неоднозначность снять, можно воспользоваться параметром name аннотации @Entity.

Читать далее

Создание имён таблиц в Hibernate по заданным правилам

В Hibernate есть возможность определить правила именования для всех автоматически создаваемых таблиц для классов предметной области. Обычно такие правила сводятся к присоединению определённых префиксов или постфиксов к именам таблиц. Также можно проверять имена создаваемых таблиц на соответствие корпоративным правилам и т.п.

Читать далее

Настройка имён таблиц с помощью аннотации @Table в Hibernate

При автоматической генерации схемы БД на основе классов предметной области спецификация JPA и Hibenate, как её реализация, позволяют очень гибко настраивать имена таблиц, соответствующих сущностям.

Читать далее

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

Для автоматической генерации id новых объектов сущностей Hibernate может использовать различные стратегии. Помимо тонко настраиваемых стратегий самого Hibernate, в спецификации JPA также доступны несколько стандартных стратегий, которые можно указать параметром strategy в аннотации @GeneratedValue над идентификационным полем. Здесь мы их и рассмотрим.

Читать далее

Создание кастомного генератора id через аннотацию @GenericGenerator в Hibernate

Обычно в качестве генератора id используется сиквенс базы данных, который Hibernate создаёт автоматически, когда мы указываем над идентификационным полем аннотацию @GeneratedValue(strategy = GenerationType.SEQUENCE) или @GeneratedValue(strategy = GenerationType.AUTO). Этот сиквенс можно настроить: задать ему имя и первоначальное значение. Кроме того, вместо сиквенса можно настроить использование других методов генерации id, если, например, СУБД не поддерживает синквенсы.

Читать далее

Как убрать кракозябры вместо кириллических символов в консоли psql в Windows.

При запуске программы SQL Shell (psql), поставляемой вместе с дистрибутивом postgreSQL, введя данные для подключения к базе, мы получаем такое сообщение:

ПРЕДУПРЕЖДЕНИЕ: Кодовая страница консоли (866) отличается от основной
страницы Windows (1251).
8-битовые (русские) символы могут отображаться некорректно.
Подробнее об этом смотрите документацию psql, раздел
"Notes for Windows users".

И хотя дальше работать с psql вполне можно, но вместо русских букв будут кракозябры. Это мы и исправим.

Читать далее

Использование NetBeans в качестве универсальной графической оболочки для баз данных

Работать с данными (особенно тестовыми) в БД часто бывает удобней из графической оболочки. Однако не у всех вендоров такая оболочка есть и не у всех она бесплатная. NetBeans представляет собой пусть не самую продвинутую, но вполне рабочую бесплатную универсальную оболочку для всех БД, для которых существует драйвер на java. Рассмотрим, как его подключить к развёрнутой в системе БД на примере PostgreSQL, а также к БД, хранящей данные в одном локальном файле, на примере H2.

Читать далее

Установка СУБД PostgreSQL и создание базы данных в Windows

Установим СУБД PostgreSQL на локальный компьютер с Windows и создадим первую базу данных, к которой можно будет подключаться из разрабатываемых приложений.

Читать далее