Hibernate ORM — это мощное решение для объектно-реляционного сопоставления для Java, которое позволяет легко разрабатывать логику персистентности для приложений, библиотек и платформ.
Hibernate реализует JPA, стандартный API для объектно-реляционного постоянства в Java, но также предлагает обширный набор функций и API, выходящих за рамки спецификации.
Посетите Hibernate.org для получения дополнительной информации.
Hibernate использует как Jenkins, так и GitHub Actions для своих нужд CI. Видеть
Дженкинс Джобс
Действия GitHub: задания
Для сборки требуется минимум Java 11 и максимум Java 17.
Hibernate использует Gradle в качестве инструмента сборки. Если вы новичок в Gradle, см. раздел «Основы Gradle Primer» ниже.
Авторам следует прочитать Руководство для участников.
См. руководства по настройке IntelliJ или Eclipse в качестве среды разработки.
Инструмент сборки Gradle имеет потрясающую документацию. 2, в частности, которые необходимы:
Руководство пользователя Gradle — это типичное руководство пользователя, в котором применяется тематический подход к описанию всех возможностей Gradle.
Руководство по Gradle DSL уникально и отлично подходит для быстрого ознакомления с некоторыми аспектами Gradle.
Мы рассмотрим основы, которые разработчикам и участникам, впервые использующим Gradle, необходимо знать, чтобы быстро добиться продуктивной работы.
Примечание | Проект определяет Gradle Wrapper. Остальная часть раздела предполагает выполнение через оболочку. |
Gradle использует концепцию задач сборки (эквивалентных целям Ant или фазам/целям Maven). Список доступных задач можно получить через
задачи градиента
Чтобы выполнить задачу во всех модулях, просто выполните эту задачу из корневого каталога. Gradle посетит каждый подпроект и выполнит эту задачу, если подпроект ее определяет. Чтобы выполнить задачу в конкретном модуле, вы можете:
cd
в каталог этого модуля и выполните задачу
назовите «путь задачи». Например, чтобы запустить тесты модуля hibernate-core из корневого каталога, вы можете сказать gradle hibernate-core:test
Общие задачи, которые вы можете использовать при создании Hibernate, включают:
build — Собирает (jars) и тестирует этот проект.
компиляция — выполняет все задачи компиляции, включая промежуточные ресурсы как из основного, так и из тестового состояния.
jar — генерирует jar-архив со всеми скомпилированными классами.
test — запускает тесты
PublishToMavenLocal — устанавливает jar проекта в локальный кэш Maven (он же ~/.m2/repository). Обратите внимание, что Gradle никогда не использует это, но это может быть полезно для тестирования вашей сборки с другими локальными сборками на основе Maven.
Clean — Очищает каталог сборки.
Тестирование конкретной базы данных можно выполнить двумя разными способами:
Придет позже…
Сборка Hibernate определяет несколько «профилей» тестирования базы данных в databases.gradle
. Эти профили можно активировать по имени с помощью свойства сборки db
, которое можно передать либо как системную опору JVM ( -D
), либо как свойство проекта Gradle ( -P
). В приведенных ниже примерах используется подход свойств проекта Gradle.
gradle чистая сборка -Pdb=pgsql
Чтобы запустить тест из вашей IDE, вам необходимо убедиться, что расширение свойств происходит. Используйте следующую команду:
gradle чистая компиляция -Pdb=pgsql
ПРИМЕЧАНИЕ. Если вы выполняете тесты с драйвером JDBC, который недоступен через Maven Central, обязательно добавьте эти драйверы в свой локальный кеш репозитория Maven (~/.m2/repository) или (лучше) добавьте его на личный сервер репозитория Maven.
Вы можете запустить любой тест для любой конкретной базы данных, настроенной в профиле databases.gradle
.
Все, что вам нужно сделать, это запустить следующую команду:
./gradlew setDataBase -Pdb=pgsql
или вы можете использовать сокращенную версию:
./gradlew sDB -Pdb=pgsql
Вы можете сделать это из модуля, который вы хотите протестировать, или из корневой папки hibernate-orm
.
После этого просто выберите любой тест из IDE и запустите его как обычно. Hibernate выберет конфигурацию базы данных из файла hibernate.properties
, который был настроен задачей setDataBase
Gradle.
Вам не обязательно устанавливать все базы данных локально, чтобы иметь возможность протестировать их, если у вас есть Docker. Скрипт docker_db.sh
позволяет запустить предварительно настроенную базу данных, которую можно использовать для тестирования.
Все, что вам нужно сделать, это запустить следующую команду:
./docker_db.sh postgresql
если опустить аргумент, будет выведен список возможных вариантов.
Когда база данных запущена правильно, вы можете запускать тесты со специальными профилями с суффиксом _ci
, например pgsql_ci
для PostgreSQL. Используя системное свойство dbHost
вы можете настроить IP-адрес вашего хоста докера.
Команда для запуска тестов может выглядеть следующим образом:
./gradlew test -Pdb=pgsql_ci "-DdbHost=192.168.99.100"
В следующей таблице показан список команд для различных баз данных, которые можно протестировать локально.
База данных | docker_db.sh | Команда Gradle |
---|---|---|
Н2 | - | |
HSQLDB | - | |
Апач Дерби | - | |
MySQL | | |
МарияДБ | | |
PostgreSQL | | |
EnterpriseDB | | |
Оракул | | |
DB2 | | |
SQL-сервер | | |
Sybase ASE (jTDS) | | |
Sybase ASE (jConnect) | | |
SAP Хана | | |
ТараканДБ | | |
ТиБД | | |
Информикс | | |
Чтобы остановить контейнер, запущенный docker
, используйте команду
docker stop $container_name
Замените команду podman
на docker
если используете podman
Например, чтобы остановить контейнер mariadb
docker stop mariadb