Hibernate ORM est une puissante solution de mappage objet/relationnel pour Java et facilite le développement d'une logique de persistance pour les applications, les bibliothèques et les frameworks.
Hibernate implémente JPA, l'API standard pour la persistance objet/relationnelle en Java, mais propose également un ensemble complet de fonctionnalités et d'API qui vont au-delà de la spécification.
Voir Hibernate.org pour plus d'informations.
Hibernate utilise à la fois Jenkins et GitHub Actions pour ses besoins CI. Voir
Emplois chez Jenkins
Emplois pour les actions GitHub
La version nécessite au moins Java 11 et au maximum Java 17.
Hibernate utilise Gradle comme outil de construction. Consultez la section Gradle Primer ci-dessous si vous êtes nouveau sur Gradle.
Les contributeurs doivent lire le Guide de contribution.
Consultez les guides pour configurer IntelliJ ou Eclipse comme environnement de développement.
L'outil de construction Gradle dispose d'une documentation étonnante. 2 notamment qui sont indispensables :
Le guide de l'utilisateur Gradle est un guide de l'utilisateur typique dans la mesure où il suit une approche thématique pour décrire toutes les fonctionnalités de Gradle.
Le guide Gradle DSL est unique et excellent pour se mettre rapidement au courant de certains aspects de Gradle.
Nous aborderons les bases que les développeurs et les contributeurs qui découvrent Gradle doivent connaître pour devenir rapidement productifs.
Note | Le projet définit un Gradle Wrapper. Le reste de la section supposera une exécution via le wrapper. |
Gradle utilise le concept de tâches de construction (équivalent aux cibles Ant ou aux phases/objectifs Maven). Vous pouvez obtenir une liste des tâches disponibles via
tâches de progression
Pour exécuter une tâche sur tous les modules, effectuez simplement cette tâche à partir du répertoire racine. Gradle visitera chaque sous-projet et exécutera cette tâche si le sous-projet la définit. Pour exécuter une tâche dans un module spécifique vous pouvez soit :
cd
dans ce répertoire de module et exécutez la tâche
nommez le « chemin de la tâche ». Par exemple, pour exécuter les tests du module hibernate-core à partir du répertoire racine, vous pouvez dire gradle hibernate-core:test
Les tâches courantes que vous pouvez utiliser pour créer Hibernate incluent :
build - Assemble (jars) et teste ce projet
compile - Effectue toutes les tâches de compilation, y compris les ressources de transfert du principal et du test
jar - Génère une archive jar avec toutes les classes compilées
test - Exécute les tests
publiToMavenLocal - Installe le fichier jar du projet dans votre cache maven local (alias ~/.m2/repository). Notez que Gradle ne l'utilise jamais, mais cela peut être utile pour tester votre build avec d'autres builds locales basées sur Maven.
clean - Nettoie le répertoire de construction
Les tests sur une base de données spécifique peuvent être réalisés de 2 manières différentes :
A venir plus tard…
La version Hibernate définit plusieurs "profils" de test de base de données dans databases.gradle
. Ces profils peuvent être activés par leur nom à l'aide de la propriété db
build qui peut être transmise soit en tant qu'accessoire système JVM ( -D
), soit en tant que propriété de projet Gradle ( -P
). Les exemples ci-dessous utilisent l'approche des propriétés du projet Gradle.
construction propre et progressive -Pdb = pgsql
Pour exécuter un test à partir de votre IDE, vous devez vous assurer que les extensions de propriété ont lieu. Utilisez la commande suivante :
compilation propre et progressive -Pdb = pgsql
REMARQUE : Si vous exécutez des tests sur un pilote JDBC qui n'est pas disponible via Maven Central, assurez-vous d'ajouter ces pilotes à votre cache de dépôt Maven local (~/.m2/repository) ou (mieux) de l'ajouter à un serveur de dépôt Maven personnel.
Vous pouvez exécuter n'importe quel test sur n'importe quelle base de données particulière configurée dans un profil databases.gradle
.
Il ne vous reste plus qu'à exécuter la commande suivante :
./gradlew setDataBase -Pdb=pgsql
ou vous pouvez utiliser la version raccourcie :
./gradlew sDB -Pdb=pgsql
Vous pouvez le faire à partir du module que vous souhaitez tester ou à partir du dossier racine hibernate-orm
.
Ensuite, choisissez n’importe quel test de l’EDI et exécutez-le comme d’habitude. Hibernate sélectionnera la configuration de la base de données dans le fichier hibernate.properties
qui a été configuré par la tâche setDataBase
Gradle.
Vous n'êtes pas obligé d'installer toutes les bases de données localement pour pouvoir les tester si vous disposez d'un docker. Le script docker_db.sh
vous permet de démarrer une base de données préconfigurée qui peut être utilisée pour les tests.
Il ne vous reste plus qu'à exécuter la commande suivante :
./docker_db.sh postgresql
omettre l'argument imprimera une liste d'options possibles.
Lorsque la base de données est correctement démarrée, vous pouvez exécuter des tests avec des profils spéciaux suffixés par _ci
, par exemple pgsql_ci
pour PostgreSQL. En utilisant la propriété système dbHost
vous pouvez configurer l'adresse IP de votre hôte Docker.
La commande pour exécuter les tests pourrait ressembler à ce qui suit :
./gradlew test -Pdb=pgsql_ci "-DdbHost=192.168.99.100"
Le tableau suivant illustre une liste de commandes pour diverses bases de données qui peuvent être testées localement.
Base de données | docker_db.sh | Commande Gradle |
---|---|---|
H2 | - | |
HSQLDB | - | |
Apache Derby | - | |
MySQL | | |
MariaDB | | |
PostgreSQL | | |
EntrepriseDB | | |
Oracle | | |
DB2 | | |
Serveur SQL | | |
Sybase ASE (jTDS) | | |
Sybase ASE (jConnect) | | |
SAP HANA | | |
CafardDB | | |
TiDB | | |
Informix | | |
Pour arrêter un conteneur démarré par docker
, utilisez la commande
docker stop $container_name
Remplacez la commande podman
par docker
si vous utilisez podman
Par exemple, pour arrêter le conteneur mariadb
docker stop mariadb