Overview
Hibernate ORM permite usar objetos Java para realizar operaciones con bases de datos. Además, puede usar la extensión MongoDB para Hibernate ORM para simplificar la interacción de su aplicación con los datos de MongoDB. Esta guía muestra cómo instalar la extensión Hibernate ORM, configurar una implementación de MongoDB y crear una aplicación Java que defina clases asignadas a colecciones de MongoDB.
Tip
MongoDB Atlas es un servicio de base de datos gestionada en la nube que aloja las implementaciones de MongoDB. Se puede crear una implementación propia gratuita de MongoDB Atlas (sin necesidad de tarjeta de crédito) siguiendo los pasos de esta guía.
Descargue e instale
Instale las dependencias
Antes de comenzar a desarrollar, asegúrese de tener instaladas las siguientes dependencias en su máquina local:
Java versión 17 o posterior
Entorno de desarrollo integrado (IDE), como IntelliJ IDEA o Eclipse
Nota
Este tutorial muestra cómo crear una aplicación usando Maven o Gradle en un IDE. Si no usa un IDE, consulte "Crear compilaciones con Maven" o "Crear nuevas compilaciones con Gradle" para aprender a configurar su proyecto.
Instalar la extensión
En su IDE, cree un nuevo proyecto Maven o Gradle llamado MongoHibernateQuickstartPara proyectos Maven, agregue la siguiente dependencia a su archivo pom.xml:
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-hibernate</artifactId> <version>1.0.0-alpha0</version> </dependency> </dependencies>
Para proyectos Gradle, agregue la siguiente dependencia a su archivo build.gradle:
dependencies { implementation("org.mongodb:mongodb-hibernate:1.0.0-alpha0") }
En su IDE, asegúrese de volver a cargar o sincronizar su proyecto para completar la instalación de la extensión Hibernate ORM.
Después de completar estos pasos, tendrá la extensión Hibernate ORM instalada y un nuevo proyecto Maven o Gradle configurado en su IDE.
Cree una implementación de MongoDB
Se puede crear una implementación de nivel gratuito de MongoDB en MongoDB Atlas para almacenar y gestionar los datos. MongoDB Atlas aloja y gestiona la base de datos MongoDB en la nube.
Cree una implementación gratuita de MongoDB en Atlas
Complete la guía de introducción a MongoDB para configurar una nueva cuenta de Atlas y cargar datos de muestra en una nueva implementación gratuita de MongoDB. Siga las instrucciones. Cloud Deployment Pestañas para crear su implementación de MongoDB Atlas en la nube.
Después de completar estos pasos, habrá una nueva implementación de nivel gratuito de MongoDB en Atlas, credenciales de usuario de base de datos y datos de muestra cargados en la base de datos.
Crear una cadena de conexión
Puede conectarse a su implementación de MongoDB proporcionando un URI de conexión, también llamado cadena de conexión, que instruye al controlador sobre cómo conectarse a una implementación de MongoDB y cómo comportarse mientras está conectado.
La cadena de conexión incluye el nombre de host o la dirección IP y el puerto de la implementación, el mecanismo de autenticación, las credenciales de usuario cuando sea aplicable, y las opciones de conexión.
Encuentre su cadena de conexión de MongoDB Atlas
Para recuperar la cadena de conexión para la implementación que se creó en el paso anterior, se debe iniciar sesión en la cuenta de Atlas y navegar a la sección Clusters. Se debe hacer clic en el botón Connect para la nueva implementación, como se muestra en la siguiente captura de pantalla:

Luego, procede a la sección Connect your application. Selecciona "Java" del menú de selección Driver y la versión que mejor coincida con la versión que ha instalado del menú de selección Version.
Agregue una base de datos a su cadena de conexión
Para conectarse a la base de datos de muestra sample_mflix, que su aplicación utiliza en los próximos pasos, agregue el nombre de la base de datos a su cadena de conexión.
Su cadena de conexión debe parecerse al siguiente ejemplo:
mongodb+srv://<db_username>:<db_password>@<cluster>/sample_mflix?<options>
Después de completar estos pasos, tendrá una cadena de conexión que contiene su nombre de usuario, contraseña y base de datos.
Configura tu aplicación
Después de instalar la extensión Hibernate ORM y crear un clúster MongoDB Atlas, puede crear una aplicación Java que se conecte a MongoDB.
Conecte su aplicación a MongoDB
Navegue al directorio src/main/resources de su proyecto MongoHibernateQuickstart y cree un nuevo archivo llamado hibernate.properties, que almacena la configuración de su aplicación.
Copia el siguiente código en este archivo:
hibernate.dialect=com.mongodb.hibernate.dialect.MongoDialect hibernate.connection.provider_class=com.mongodb.hibernate.jdbc.MongoConnectionProvider jakarta.persistence.jdbc.url=<connection string>
En la jakarta.persistence.jdbc.url propiedad, reemplace el <connection string> marcador de posición con la cadena de conexión que creó en el paso anterior.
Crear una clase de utilidad para administrar sesiones
Nota
Directorio de paquetes predeterminado
Este tutorial utiliza el paquete org.example predeterminado de Maven y Gradle y añade los archivos de la aplicación al directorio src/main/java/org/example. Si usa un nombre de paquete diferente, asegúrese de crear los archivos en el directorio correspondiente.
En el directorio src/main/java/org/example de tu proyecto, crea un archivo llamado HibernateUtil.java. Esta clase de utilidad crea un archivo SessionFactory basado en tu archivo de configuración.
Copia el siguiente código en este archivo:
package org.example; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public final class HibernateUtil { private static final SessionFactory SESSION_FACTORY = new Configuration() .addAnnotatedClass(Movie.class) .buildSessionFactory(); private HibernateUtil() {} public static SessionFactory getSessionFactory() { return SESSION_FACTORY; } }
Define tu Movie entidad
En el directorio de su proyecto,org/example cree un nuevo archivo Movie.java llamado. Este archivo contiene Movie la entidad, que representa la sample_mflix.movies colección de muestra de los conjuntos de datos de muestra de Atlas.
Copia el siguiente código en este archivo:
package org.example; import com.mongodb.hibernate.annotations.ObjectIdGenerator; import org.bson.types.ObjectId; import java.util.List; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Table; public class Movie { private ObjectId id; private String title; private String plot; private int year; private List<String> cast; public Movie(String title, String plot, int year, List<String> cast) { this.title = title; this.plot = plot; this.year = year; this.cast = cast; } public Movie() { } public ObjectId getId() { return id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPlot() { return plot; } public void setPlot(String plot) { this.plot = plot; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public List<String> getCast() { return cast; } public void setCast(List<String> cast) { this.cast = cast; } }
Este archivo define una entidad Movie con los siguientes campos:
id:El identificador único de la película, asignado al campo_idde MongoDB.title:El título de la película.year:El año en que se estrenó la película.cast:Una lista de cadenas que representan a los miembros del elenco de la película.
Define tu clase de aplicación principal
En el directorio org/example de tu proyecto, crea un nuevo archivo llamado Main.java. Este archivo contiene la clase principal de tu aplicación, que almacena la lógica de la misma.
Copia el siguiente código en este archivo:
package org.example; import org.hibernate.Transaction; import org.hibernate.Session; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { var sf = HibernateUtil.getSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); // Add CRUD operations here tx.commit(); session.close(); sf.close(); } }
Tras completar estos pasos, tendrá una aplicación Java configurada para usar la extensión ORM de Hibernate y conectarse a su implementación de MongoDB. Su aplicación tiene la siguiente estructura de archivos:
MongoHibernateQuickstart ├── src │ └── main │ ├── java │ │ └── org/example │ │ ├── HibernateUtil.java │ │ ├── Main.java │ │ └── Movie.java │ └── resources │ └── hibernate.properties ├── .gitignore ├── pom.xml (for Maven projects) └── build.gradle (for Gradle projects)
Ejecuta una query de muestra
Puede ejecutar consultas en sus objetos Movie, que la extensión traduce en consultas MongoDB.
Ejecutar una consulta en el title campo
Navegue hasta su archivo Main.java y pegue el siguiente código debajo del comentario // Add CRUD operations here:
var searchTitle = "Little Women"; var results = session.createQuery("from Movie m where m.title = :t", Movie.class) .setParameter("t", searchTitle) .getResultList(); for (var m : results) { System.out.println("Title: " + m.getTitle() + ", Year: " + m.getYear()); }
Este código utiliza el lenguaje de consulta Hibernate (HQL) de Hibernate ORM para recuperar sample_mflix.movies documentos cuyo valor title es "Little Women". A continuación, imprime los valores title y year de cada resultado.
Tip
Para obtener más información sobre HQL, consulte Lenguaje de consulta de Hibernate en la guía del usuario de Hibernate ORM.
Escribe datos en MongoDB
Se puede guardar datos en la implementación de MongoDB creando y modificando los objetos Movie.
Insertar un documento en la colección movies .
En su archivo Main.java, agregue el siguiente código para crear una instancia de entidad Movie llamada myMovie y guárdela en la base de datos:
var title = "A Real Pain"; var plot = "Mismatched cousins David and Benji tour Poland to honor their grandmother. " + "Their adventure becomes complicated as old tensions resurface while exploring their family history."; var year = 2024; var cast = new ArrayList<>(List.of("Jesse Eisenberg", "Kieran Culkin", "Will Sharpe")); var myMovie = new Movie(title, plot, year, cast); session.persist(myMovie); System.out.println("Movie created with ID: " + myMovie.getId());
Este código crea una nueva instancia de entidad Movie y utiliza el método session.persist() para guardarla en la base de datos.
Actualizar un documento
Agregue el siguiente código a su archivo Main.java para actualizar la instancia Movie que creó en el paso anterior:
myMovie.getCast().add("Jennifer Grey"); System.out.println("Movie updated with new cast: " + myMovie.getCast());
Este código recupera el valor cast actual y le añade un nuevo miembro de conversión. La extensión ORM de Hibernate aplica este cambio al documento correspondiente en la base de datos.
Borrar un documento
Agrega el siguiente código a tu archivo Main.java para borrar la instancia de la entidad myMovie:
session.remove(myMovie); System.out.println("Movie deleted with ID: " + myMovie.getId());
Este código elimina la instancia de entidad myMovie y su documento correspondiente de la base de datos.
Próximos pasos
¡Felicidades por completar el tutorial!
Nota
Si encuentra algún problema en este tutorial, envíe sus comentarios utilizando la pestaña Rate this page en el lado derecho de esta página.
Puede encontrar soporte para preguntas generales mediante la etiqueta Stack Overflow de MongoDB o la comunidad de Reddit de MongoDB.
En este tutorial, creó una aplicación Java que se conecta a una implementación de MongoDB alojada en MongoDB Atlas y utiliza la extensión ORM de Hibernate para interactuar con sus datos.
Para obtener más información sobre la extensión ORM de Hibernate, consulte los siguientes recursos:
Documentación de la API de laextensión ORM de Hibernate
Código fuente demongo-hibernate en GitHub
Documentación ORM de Hibernate
Documentaciónde persistencia de Yakarta
Para ver un tutorial para comenzar que muestra cómo instalar la extensión Hibernate ORM e interactuar con datos de libros, consulta la Guía para comenzar con Hibernate ORM y MongoDB entrada de blog Foojay.
