Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Comienza con la Extensión Hibernate ORM

Hibernate ORM te permite utilizar objetos Java para realizar operaciones en la base de datos, y puedes utilizar la extensión de MongoDB para Hibernate ORM para simplificar las interacciones de tu 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 mapeadas 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.

1

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 utilizando Maven o Gradle en un IDE. Si no utiliza un IDE, consulte Compilar Maven o Crear nuevas compilaciones de Gradle para aprender cómo configurar su proyecto.

2

En tu IDE, crea un nuevo proyecto de Maven o Gradle llamado MongoHibernateQuickstart. Por proyectos Maven, añada 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, añada la siguiente dependencia a su archivo build.gradle:

dependencies {
implementation("org.mongodb:mongodb-hibernate:1.0.0-alpha0")
}

En tu IDE, asegúrate de recargar o sincronizar tu proyecto para completar la instalación de la extensión Hibernate ORM.

Después de completar estos pasos, tienes la extensión Hibernate ORM instalada y un nuevo proyecto Maven o Gradle configurado en tu IDE.

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.

1

Completa la guía de MongoDB Primeros pasos para configurar una nueva cuenta de Atlas y cargar datos de muestra en una nueva implementación de MongoDB de nivel gratuito. Sigue las instrucciones en el Cloud Deployment pestañas para crear tu implementación de MongoDB Atlas en la nube.

2

Después de crear el usuario de base de datos, se deben guardar el nombre de usuario y la contraseña de ese usuario en una ubicación segura para usarlos en un paso próximo.

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.

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.

1

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:

El botón de conexión en la sección de clústeres de la interfaz de usuario de Atlas

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.

2

Haz clic en el botón a la derecha de la cadena de conexión para copiarla en el portapapeles, como se muestra en la siguiente captura de pantalla:

El botón de copia de la cadena de conexión en la Interfaz de Usuario de Atlas
3

Guarde su cadena de conexión en un lugar seguro para usarla más adelante. Reemplace los <db_username> y <db_password> marcadores de posición de la cadena de conexión con el nombre de usuario y la contraseña de su usuario de base de datos.

4

Para conectarte a la base de datos de muestra sample_mflix, que tu aplicación usa en los próximos pasos, agrega el nombre de la base de datos a tu cadena de conexión.

Tu cadena de conexión debería parecerse al siguiente ejemplo:

mongodb+srv://<db_username>:<db_password>@<cluster>/sample_mflix?<options>

Luego de completar estos pasos, tendrá una cadena de conexión que contiene su nombre de usuario, contraseña y base de datos.

Después de instalar la extensión Hibernate ORM y crear un clúster de MongoDB Atlas, puedes crear una aplicación en Java que se conecte a MongoDB.

1

Navega al directorio src/main/resources de tu proyecto MongoHibernateQuickstart y crea un nuevo archivo llamado hibernate.properties, que almacene los ajustes de configuración de tu 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 propiedad jakarta.persistence.jdbc.url, reemplaza el marcador <connection string> con la cadena de conexión que creaste en el paso anterior.

2

Nota

Directorio del paquete por defecto

Este tutorial utiliza el paquete org.example por defecto de Maven y Gradle y agrega archivos de la aplicación al directorio src/main/java/org/example. Si usas un nombre de paquete diferente, asegúrate de crear tus archivos en su directorio correspondiente.

En el directorio src/main/java/org/example de tu proyecto, crea un nuevo archivo llamado HibernateUtil.java. Esta clase de utilidad crea un SessionFactory basándose 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; }
}
3

En el directorio org/example de tu proyecto, crea un nuevo archivo llamado Movie.java. Este archivo contiene tu entidad Movie, que representa la colección de muestras sample_mflix.movies 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;
@Entity
@Table(name = "movies")
public class Movie {
@Id
@ObjectIdGenerator
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:

  • idEl identificador único de la película, mapeado al campo _id de MongoDB.

  • title: El título de la película.

  • year: El año en que se estrenó la película.

  • castUna lista de cadenas que representa los nodos del reparto de la película.

4

En el directorio org/example de tu proyecto, crea un nuevo archivo llamado Main.java. Este archivo contiene tu clase principal de la aplicación, que almacena la lógica de la aplicación.

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();
}
}

Después de realizar estos pasos, tendrás una aplicación Java configurada para usar la extensión Hibernate ORM y conectarse a tu 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)

Puedes ejecutar consultas en tus objetos Movie, que la extensión traduce en consultas de MongoDB.

1

Navegue a 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 de Hibernate (HQL) de Hibernate ORM para recuperar sample_mflix.movies documentos que tienen un valor de title de "Little Women". Luego, imprime los valores title y year de cada resultado.

Tip

Para obtener más información sobre HQL, consulte Hibernate languaje del query en la guía del usuario de Hibernate ORM.

2

Ejecuta el archivo Main.java en tu IDE. Su resultado contiene detalles sobre el comando de base de datos y los documentos recuperados:

Title: Little Women, Year: 1949
Title: Little Women, Year: 1994

Se puede guardar datos en la implementación de MongoDB creando y modificando los objetos Movie.

1

En tu archivo Main.java, agrega el siguiente código para crear una instancia de entidad Movie llamada myMovie y guardarla 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.

2

Agrega el siguiente código a tu archivo Main.java para actualizar la instancia Movie que creaste 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 actual de cast y añade un nuevo miembro al reparto. La extensión Hibernate ORM aplica este cambio al documento correspondiente de la base de datos.

3

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 la entidad myMovie y su documento correspondiente de la base de datos.

4

Ejecútalo el archivo Main.java en tu IDE. Tu salida contiene detalles sobre tus operaciones de guardar:

Movie created with ID: <ObjectId>
Movie updated with new cast: [Jesse Eisenberg, Kieran Culkin, Will Sharpe, Jennifer Grey]
Movie deleted with ID: <ObjectId>

¡Felicidades por completar el tutorial!

Nota

Si encuentras problemas en este tutorial, envía tus comentarios usando 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, creaste una aplicación Java que se conecta a una implementación MongoDB alojada en MongoDB Atlas y utiliza la extensión Hibernate ORM para interactuar con tus datos.

Para obtener más información sobre la extensión Hibernate ORM, consulta los siguientes recursos:

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.

Volver

Overview