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.