Hibernate ORM es una poderosa solución de mapeo relacional/objeto para Java y facilita el desarrollo de lógica de persistencia para aplicaciones, bibliotecas y marcos.
Hibernate implementa JPA, la API estándar para la persistencia de objetos/relacional en Java, pero también ofrece un amplio conjunto de características y API que van más allá de la especificación.
Consulte Hibernate.org para obtener más información.
Hibernate utiliza Jenkins y GitHub Actions para sus necesidades de CI. Ver
Empleos de Jenkins
Trabajos de acciones de GitHub
La compilación requiere al menos Java 11 y como máximo Java 17.
Hibernate usa Gradle como herramienta de compilación. Consulte la sección Gradle Primer a continuación si es nuevo en Gradle.
Los contribuyentes deben leer la Guía de contribución.
Consulte las guías para configurar IntelliJ o Eclipse como su entorno de desarrollo.
La herramienta de compilación Gradle tiene una documentación asombrosa. 2 en particular que son indispensables:
La Guía del usuario de Gradle es una guía de usuario típica porque sigue un enfoque temático para describir todas las capacidades de Gradle.
Gradle DSL Guide es única y excelente para ponerse al día rápidamente sobre ciertos aspectos de Gradle.
Cubriremos los conceptos básicos que los desarrolladores y contribuyentes nuevos en Gradle necesitan saber para ser productivos rápidamente.
Nota | El proyecto define un Gradle Wrapper. El resto de la sección asumirá la ejecución a través del contenedor. |
Gradle utiliza el concepto de tareas de compilación (equivalentes a objetivos Ant o fases/objetivos de Maven). Puede obtener una lista de tareas disponibles a través de
tareas de gradle
Para ejecutar una tarea en todos los módulos, simplemente realice esa tarea desde el directorio raíz. Gradle visitará cada subproyecto y ejecutará esa tarea si el subproyecto lo define. Para ejecutar una tarea en un módulo específico, puede:
cd
en el directorio de ese módulo y ejecute la tarea
nombre la "ruta de la tarea". Por ejemplo, para ejecutar las pruebas para el módulo hibernate-core desde el directorio raíz, podría decir gradle hibernate-core:test
Las tareas comunes que puede utilizar al crear Hibernate incluyen:
build : ensambla (frascos) y prueba este proyecto.
compilar : realiza todas las tareas de compilación, incluidos los recursos provisionales tanto de main como de prueba.
jar : genera un archivo jar con todas las clases compiladas
prueba : ejecuta las pruebas
publicarToMavenLocal : instala el archivo jar del proyecto en su caché maven local (también conocido como ~/.m2/repository). Tenga en cuenta que Gradle nunca usa esto, pero puede ser útil para probar su compilación con otras compilaciones locales basadas en Maven.
clean : limpia el directorio de compilación
Las pruebas con una base de datos específica se pueden realizar de dos maneras diferentes:
Próximamente…
La compilación de Hibernate define varios "perfiles" de prueba de bases de datos en databases.gradle
. Estos perfiles se pueden activar por nombre usando la propiedad db
build que se puede pasar como propiedad del sistema JVM ( -D
) o como propiedad del proyecto Gradle ( -P
). Los ejemplos siguientes utilizan el enfoque de propiedades del proyecto Gradle.
compilación limpia de gradle -Pdb=pgsql
Para ejecutar una prueba desde su IDE, debe asegurarse de que se realicen las expansiones de propiedad. Utilice el siguiente comando:
compilación limpia de gradle -Pdb=pgsql
NOTA: Si está ejecutando pruebas con un controlador JDBC que no está disponible a través de Maven central, asegúrese de agregar estos controladores a su caché de repositorio local de Maven (~/.m2/repository) o (mejor) agréguelo a un servidor de repositorio personal de Maven.
Puede ejecutar cualquier prueba en cualquier base de datos particular que esté configurada en un perfil databases.gradle
.
Todo lo que tienes que hacer es ejecutar el siguiente comando:
./gradlew setDataBase -Pdb=pgsql
o puedes usar la versión de acceso directo:
./gradlew sDB -Pdb=pgsql
Puede hacer esto desde el módulo que le interesa probar o desde la carpeta raíz hibernate-orm
.
Luego, simplemente elija cualquier prueba del IDE y ejecútela como de costumbre. Hibernate seleccionará la configuración de la base de datos del archivo hibernate.properties
que configuró la tarea setDataBase
Gradle.
No es necesario instalar todas las bases de datos localmente para poder realizar pruebas con ellas en caso de que tenga Docker disponible. El script docker_db.sh
le permite iniciar una base de datos preconfigurada que puede usarse para pruebas.
Todo lo que tienes que hacer es ejecutar el siguiente comando:
./docker_db.sh postgresql
omitir el argumento imprimirá una lista de opciones posibles.
Cuando la base de datos se inicia correctamente, puede ejecutar pruebas con perfiles especiales que tengan el sufijo _ci
, por ejemplo, pgsql_ci
para PostgreSQL. Al utilizar la propiedad del sistema dbHost
puede configurar la dirección IP de su host Docker.
El comando para ejecutar pruebas podría verse como el siguiente:
./gradlew prueba -Pdb=pgsql_ci "-DdbHost=192.168.99.100"
La siguiente tabla ilustra una lista de comandos para varias bases de datos que se pueden probar localmente.
Base de datos | docker_db.sh | comando gradle |
---|---|---|
H2 | - | |
HSQLDB | - | |
derbi apache | - | |
mysql | | |
mariadb | | |
PostgreSQL | | |
EnterpriseDB | | |
Oráculo | | |
DB2 | | |
Servidor SQL | | |
Sybase ASE (jTDS) | | |
Sybase ASE (jConnect) | | |
SAP HANA | | |
CucarachaDB | | |
TiDB | | |
informax | | |
Para detener un contenedor iniciado por docker
, use el comando
docker stop $container_name
Sustituya el comando podman
por docker
si usa podman
Por ejemplo, para detener el contenedor mariadb.
docker stop mariadb