Hibernate

Hibernate

Tutorial Hibernate: Configuración Hibernate con Gradle

Hibernate configuración Gradle: integración. Domina la configuración de Hibernate con Gradle mediante ejemplos prácticos y detallados.

Introducción

Configurar Hibernate en un proyecto Gradle implica varios pasos que aseguran que todas las dependencias necesarias estén incluidas y que la configuración de Hibernate esté correctamente establecida para interactuar con la base de datos deseada. 

Configurar el archivo build.gradle

Primero, necesitas asegurarte de que tu archivo build.gradle incluya las dependencias necesarias para Hibernate, el driver JDBC para tu base de datos específica, y cualquier otra biblioteca que necesites. 

Aquí hay un ejemplo básico para un proyecto que utiliza Hibernate con una base de datos MySQL:

plugins {
    id 'java'
}

group = 'com.certidevs'
version = '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    // https://mvnrepository.com/artifact/com.mysql/mysql-connector-j
    implementation group: 'com.mysql', name: 'mysql-connector-j', version: '8.4.0'
    // https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-core
    implementation group: 'org.hibernate.orm', name: 'hibernate-core', version: '6.5.0.Final'

    testImplementation platform('org.junit:junit-bom:5.10.0')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

test {
    useJUnitPlatform()
}

Resultado:

Para verificar la carga de librerías se puede desplegar la sección “External libraries”:

Crear el archivo de configuración de Hibernate

Hibernate requiere un archivo de configuración donde se especifican diversas propiedades, como detalles de la conexión a la base de datos, la dialecto específico de SQL que se debe usar, y las entidades mapeadas. 

Este archivo usualmente se llama hibernate.cfg.xml y se ubica en el directorio src/main/resources:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">
            com.mysql.cj.jdbc.Driver
        </property>
        <property name="hibernate.connection.url">
            jdbc:mysql://localhost:3306/hibernate_clase?createDatabaseIfNotExist=true
        </property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">admin</property>
        <property name="hibernate.connection.pool_size">50</property>
        <property name="show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.use_sql_comments">true</property>
        <property name="hibernate.hbm2ddl.auto">create</property>
        <mapping class="com.certidevs.Employee" />
    </session-factory>
</hibernate-configuration>

Resultado

Escribir las clases de entidad

En el ejemplo anterior se ha creado una entidad Employee.

Las clases de entidad en Hibernate son objetos Java que representan tablas en tu base de datos. 

Estas deben ser anotadas con @Entity, @Table y otras anotaciones de JPA para definir mapeos, relaciones, etc.

package com.certidevs;

import jakarta.persistence.*;

@Entity()
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

Utilizar Hibernate en tu aplicación

Finalmente, puedes usar un SessionFactory para crear sesiones y realizar operaciones de base de datos:

package com.certidevs;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Main {
    public static void main(String[] args) {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();

        session.persist(new Employee());

        session.getTransaction().commit();
        session.close();
    }
}

Con estos pasos, deberías poder configurar Hibernate en tu proyecto Gradle y comenzar a trabajar con la base de datos de tu elección.

Certifícate en Hibernate con CertiDevs PLUS

Ejercicios de esta lección Configuración Hibernate con Gradle

Evalúa tus conocimientos de esta lección Configuración Hibernate con Gradle con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Consultas JPQL avanzadas

Hibernate
Código

Configuración con JPA

Hibernate
Test

Tipos de datos personalizados

Hibernate
Puzzle

Consultas Criteria avanzadas

Hibernate
Código

Operaciones en cascada

Hibernate
Test

Anotaciones JPA

Hibernate
Puzzle

Asociación Many To One

Hibernate
Test

Funciones en consultas JPQL

Hibernate
Código

Asociación Many To Many entre Actor y Pelicula

Hibernate
Código

Asociación One To Many entre Curso y Estudiante

Hibernate
Código

Tipos de datos básicos

Hibernate
Test

Consultas Criteria básicas

Hibernate
Código

Asociación Many To Many

Hibernate
Puzzle

CRUD de entidades con asociaciones

Hibernate
Proyecto

Optimización de asociaciones con carga lazy

Hibernate
Código

Asociación One To Many

Hibernate
Puzzle

Configuración con Maven

Hibernate
Test

Asociación One To One

Hibernate
Test

CRUD en Hibernate

Hibernate
Código

Operaciones en cascada

Hibernate
Puzzle

Introducción a Hibernate

Hibernate
Test

Atributos de tipo enum en entidades JPA

Hibernate
Código

Carga de asociaciones en consultas con EntityGraph

Hibernate
Código

Configuración con Gradle

Hibernate
Test

Asociación One To One entre Libro y Resumen

Hibernate
Código

Asociación One To Many

Hibernate
Test

Asociación Many To Many

Hibernate
Test

Creación de entidades

Hibernate
Test

Ciclo de vida de una entidad

Hibernate
Código

Consultas JPQL básicas

Hibernate
Código

Carga de asociaciones en consultas con EntityGraph y anotaciones

Hibernate
Código

Tipos de datos embebidos

Hibernate
Código

Asociación Many To One entre Paciente y Clinica

Hibernate
Código

Asociación Many To One

Hibernate
Puzzle

Optimización de consultas con DTOs

Hibernate
Código

Atributos @Transient en entidades

Hibernate
Código

Asociación One To One

Hibernate
Puzzle

Todas las lecciones de Hibernate

Accede a todas las lecciones de Hibernate y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Hibernate

Hibernate

Introducción Y Entorno

Configuración Hibernate Con Gradle

Hibernate

Introducción Y Entorno

Configuración Hibernate Con Maven

Hibernate

Introducción Y Entorno

Configuración Hibernate Con Jpa

Hibernate

Introducción Y Entorno

Creación De Entidades Jpa

Hibernate

Entidades Jpa Y Tipos De Datos

Tipos De Datos En Hibernate

Hibernate

Entidades Jpa Y Tipos De Datos

Atributos @Transient En Entidades

Hibernate

Entidades Jpa Y Tipos De Datos

Enums En Hibernate

Hibernate

Entidades Jpa Y Tipos De Datos

Tipos De Datos Embebidos

Hibernate

Entidades Jpa Y Tipos De Datos

Crud En Hibernate

Hibernate

Entidades Jpa Y Tipos De Datos

Ciclo De Vida De Una Entidad

Hibernate

Entidades Jpa Y Tipos De Datos

Asociación One To One

Hibernate

Asociaciones Entre Entidades

Asociación One To Many

Hibernate

Asociaciones Entre Entidades

Asociación Many To One

Hibernate

Asociaciones Entre Entidades

Asociación Many To Many

Hibernate

Asociaciones Entre Entidades

Operaciones En Cascada

Hibernate

Asociaciones Entre Entidades

Consultas Jpql Básicas

Hibernate

Consultas Hql Y Jpql

Consultas Jpql Avanzadas

Hibernate

Consultas Hql Y Jpql

Funciones En Consultas Jpql

Hibernate

Consultas Hql Y Jpql

Consultas Criteria Básicas

Hibernate

Api Criteria De Jpa

Consultas Criteria Avanzadas

Hibernate

Api Criteria De Jpa

Carga De Asociaciones En Consultas Con Entitygraph

Hibernate

Api Entitygraph

Carga De Asociaciones En Consultas Con Entitygraph Y Anotaciones

Hibernate

Api Entitygraph

Optimización De Consultas Con Dtos

Hibernate

Optimización

Optimización De Asociaciones Con Carga Lazy

Hibernate

Optimización

Certificados de superación de Hibernate

Supera todos los ejercicios de programación del curso de Hibernate y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender las bases y características clave de Hibernate y Gradle y cómo se complementan entre sí.
  2. Aprender a configurar y gestionar dependencias de Hibernate dentro de un proyecto Gradle.
  3. Dominar la automatización de tareas específicas relacionadas con Hibernate utilizando Gradle.
  4. Familiarizarse con plugins y extensiones relevantes para optimizar la integración.
  5. Desarrollar habilidades para resolver problemas y optimizar el flujo de trabajo en proyectos que combinen ambas herramientas.