Instalando Hibernate

¿Y cómo harías para instalar Hibernate? (Y JPA si no estás usando un contenedor Java EE). Pues en este vídeo creo el proyecto de Maven, subo el target del compilador a la última versión de Java y agrego las librerías que me harán falta:

Este curso ha sido marcado como anticuado y no está siendo revisado de forma activa. Es posible que la información pueda estar desactualizada o que los enlaces se hayan roto.

Para comenzar a trabajar con Hibernate y JPA en Java, lo primero que debemos hacer es crear un proyecto que nos permita ejecutar ejemplos de forma sencilla, preferiblemente desde la terminal. Aunque lo más común es integrar estas tecnologías en aplicaciones web con frameworks como Spring, en esta ocasión vamos a montar un proyecto básico en Java SE para entender bien la configuración inicial.

Lo ideal es usar un entorno que soporte Java EE si nuestro objetivo es desarrollar aplicaciones empresariales. Por ejemplo, Eclipse para desarrolladores Java EE, NetBeans en su versión completa o IntelliJ IDEA Ultimate, ya que la versión Community de IDEA no incluye soporte nativo para Java Enterprise. Sin embargo, para este ejemplo crearemos un proyecto Maven simple, que nos facilitará la gestión de dependencias y configuraciones.

Al crear el proyecto Maven, lo primero que debemos hacer es configurar el archivo pom.xml. Es importante definir que queremos usar Java 8, ya que muchas librerías y frameworks modernos requieren al menos esta versión. Para ello, añadimos el plugin de compilación de Maven con la configuración adecuada para el source y target en Java 8. Si no recordamos la configuración exacta, una búsqueda rápida en Google nos puede ayudar a encontrar el fragmento XML correcto para pegarlo directamente.

Luego, toca añadir las dependencias necesarias para trabajar con Hibernate y JPA. La dependencia principal es hibernate-core, que contiene el núcleo del framework. Podemos buscar la versión más reciente en Maven Central y copiar la línea para incluirla en nuestro pom.xml. Además, si estamos trabajando en un entorno Java SE, necesitamos añadir la dependencia de la API de JPA, que no viene incluida por defecto como en los servidores Java EE. Esta dependencia es javax.persistence:javax.persistence-api, que nos proporciona las interfaces y anotaciones necesarias para definir nuestras entidades y manejar la persistencia.

También es recomendable incluir hibernate-entitymanager, que actúa como puente entre JPA y Hibernate, facilitando la integración y el manejo de las entidades. Aunque en algunos casos puede no ser estrictamente necesario, es útil para evitar problemas en entornos Java SE.

Para las pruebas y desarrollo rápido, utilizaremos la base de datos H2. Esta base de datos es muy práctica porque funciona en memoria, lo que significa que no necesitamos instalar ni configurar nada adicional. Al ejecutarse dentro de un archivo JAR y ser compatible con JDBC, podemos conectarnos a ella fácilmente desde Hibernate. Cuando terminemos la ejecución de la aplicación, la base de datos desaparece, lo que la hace ideal para pruebas rápidas sin dejar residuos.

Una vez añadidas todas estas dependencias en el pom.xml, debemos actualizar el proyecto Maven para que descargue las librerías. En Eclipse, esto se puede hacer con la combinación de teclas Alt+F5 o mediante el menú contextual con Maven > Update Project. Así nos aseguramos de que todas las dependencias están disponibles para compilar y ejecutar nuestro código.

Con el proyecto ya configurado y las dependencias instaladas, el siguiente paso será crear las entidades JPA que representarán las tablas de nuestra base de datos y comenzar a trabajar con Hibernate para gestionar la persistencia de datos. Pero antes de eso, tener esta base bien montada nos permitirá avanzar sin problemas y centrarnos en el desarrollo de la lógica de negocio y las consultas.

<!-- Fragmento de ejemplo para configurar Java 8 en Maven -->
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.5.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
  </plugins>
</build>

<dependencies>
  <!-- Hibernate Core -->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.1.0.Final</version>
  </dependency>

  <!-- JPA API -->
  <dependency>
    <groupId>javax.persistence</groupId>
    <artifactId>javax.persistence-api</artifactId>
    <version>2.2</version>
  </dependency>

  <!-- Hibernate Entity Manager -->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.1.0.Final</version>
  </dependency>

  <!-- Base de datos H2 -->
  <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.200</version>
  </dependency>
</dependencies>

Con esta configuración, ya tenemos un entorno preparado para empezar a trabajar con Hibernate y JPA en Java SE, usando una base de datos en memoria para facilitar el desarrollo y las pruebas. Esto nos permitirá centrarnos en aprender y experimentar con la persistencia sin complicaciones adicionales de instalación o configuración de bases de datos externas.

Lista de reproducción
  1. 1
    La persistencia es clave
    6 minutos
  2. 2
    Instalando Hibernate
    8 minutos
  3. 3
    Crear el persistence.xml
    9 minutos
  4. 4
    Construyendo una Entity
    8 minutos
  5. 5
    Accediendo al EntityManager
    9 minutos
  6. 6
    Insertando con persist
    7 minutos
  7. 7
    Managed Entities
    6 minutos
  8. 8
    Merge y remove
    5 minutos
  9. 9
    Inciso sobre Java 8
    7 minutos
  10. 10
    Introducción a relaciones
    6 minutos
  11. 11
    Relación OneToOne
    11 minutos
  12. 12
    OneToOne inverso con mappedBy
    8 minutos
  13. 13
    OneToMany: planteamiento
    6 minutos
  14. 14
    OneToMany: anotaciones
    6 minutos
  15. 15
    OneToMany: EntityManager
    7 minutos
  16. 16
    ¡AYUDA! Error Lazy Initialization (OneToMany)
    5 minutos
  17. 17
    ¡AYUDA! No se fijan las relaciones (OneToMany)
    8 minutos
  18. 18
    Borrar hijos en un OneToMany
    11 minutos
  19. 19
    ON DELETE SET NULL
    8 minutos