Visão geral
O Hibernate ORM permite que você use objetos Java para executar operações do banco de dados, e você pode usar a Extensão MongoDB para Hibernate ORM para simplificar as interações do seu aplicativo com dados MongoDB. Este guia mostra como instalar a extensão ORM do Hibernate, configurar uma implantação do MongoDB e criar um aplicativo Java que define classes mapeadas para coleções do MongoDB.
Dica
O MongoDB Atlas é um serviço de banco de dados em nuvem totalmente gerenciado que hospeda seu Implantações do MongoDB. Você pode criar sua própria implantação do MongoDB Atlas gratuita (nenhum cartão de crédito exigido) seguindo as etapas deste guia.
Baixar e instalar
Instalar dependências
Antes de começar a desenvolver, verifique se você tem as seguintes dependências instaladas em sua máquina local:
Java versão 17 ou posterior
Ambiente de desenvolvimento integrado (IDE), como IntelliJ IDEA ou Eclipse
Observação
Este tutorial mostra como criar um aplicativo usando Maven ou Gradle em um IDE. Se você não usar um IDE, consulte Construindo o Maven ou Criando Novas Construções Gradle para aprender como definir seu projeto.
Instalar a extensão
No seu IDE, crie um novo projeto Maven ou Gradle denominado MongoHibernateQuickstart. Para projetos Maven, adicione a seguinte dependência ao seu arquivo pom.xml:
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-hibernate</artifactId> <version>1.0.0-alpha0</version> </dependency> </dependencies>
Para projetos Gradle, adicione a seguinte dependência ao seu arquivo build.gradle:
dependencies { implementation("org.mongodb:mongodb-hibernate:1.0.0-alpha0") }
Em seu IDE, certifique-se de recarregar ou realizar a sincronização do seu projeto para concluir a instalação da extensão Hibernate ORM.
Depois de concluir essas etapas, você terá a extensão Hibername ORM instalada e um novo projeto Maven ou Gradle configurado em seu IDE.
Criar uma MongoDB deployment
Você pode criar uma implantação MongoDB de camada gratuita no MongoDB Atlas para armazenar e gerenciar seus dados. O MongoDB Atlas hospeda e gerencia seu banco de dados MongoDB na nuvem.
Crie uma MongoDB deployment gratuita no Atlas
Complete o guia Iniciar MongoDB para configurar uma nova conta Atlas e carregar dados de amostra em uma nova implantação MongoDB de camada grátis. Siga as instruções nas abas Cloud Deployment para criar sua implantação do MongoDB Atlas na nuvem.
Após concluir estas etapas, você terá uma nova implantação de camada grátis do MongoDB no Atlas, credenciais de trigger de banco de dados e dados de exemplo carregados no seu reconhecimento de data center.
Criar uma connection string
Você pode se conectar à sua implantação do MongoDB fornecendo um URI de conexão, também chamado de connection string, que instrui o driver sobre como se conectar a uma implantação do MongoDB e como se comportar enquanto estiver conectado.
A cadeia de conexão inclui o nome do host ou endereço IP e porta de sua implantação, o mecanismo de autenticação, as credenciais do usuário quando aplicável, e opções de conexão.
Encontre sua string de conexão do MongoDB Atlas
Para recuperar a string de conexão da implantação criada na etapa anterior, faça login na sua conta do Atlas e navegue até a seção Clusters. Clique no botão Connect para sua nova implantação, como mostrado na seguinte captura de tela:

Em seguida, vá para a seção Connect your application. Selecione "Java" no menu de seleção Driver e a versão que melhor corresponde à versão instalada no menu de seleção Version.
Adicionar um banco de dados à sua string de conexão
Para se conectar ao banco de dados de amostra sample_mflix, que seu aplicativo usará nas próximas etapas, adicione o nome do banco de dados à sua string de conexão.
Sua string de conexão deve ser semelhante ao exemplo a seguir:
mongodb+srv://<db_username>:<db_password>@<cluster>/sample_mflix?<options>
Após completar estas etapas, você tem uma string de conexão que contém seu nome de usuário, senha e banco de dados.
Configurar seu aplicativo
Depois de instalar a extensão ORM do Hibernate e criar um cluster MongoDB Atlas, você pode criar um aplicativo Java que se conecta ao MongoDB.
Conectar seu aplicativo ao MongoDB
Navegue até o diretório MongoHibernateQuickstart do seu projeto src/main/resources e crie um novo arquivo denominado hibernate.properties, que armazena as definições de configuração do seu aplicativo.
Copie o seguinte código para este arquivo:
hibernate.dialect=com.mongodb.hibernate.dialect.MongoDialect hibernate.connection.provider_class=com.mongodb.hibernate.jdbc.MongoConnectionProvider jakarta.persistence.jdbc.url=<connection string>
Na propriedade jakarta.persistence.jdbc.url, substitua o espaço reservado <connection string> pela string de conexão que você criou na etapa anterior.
Crie uma classe de utilitário para gerenciar sessões
Observação
Diretório de pacotes padrão
Este tutorial usa o pacote org.example padrão do Maven e do Gradle e adiciona arquivos de aplicativo ao diretório src/main/java/org/example. Se você usar um nome de pacote diferente, certifique-se de criar seus arquivos no diretório correspondente.
No diretório src/main/java/org/example do seu projeto, crie um novo arquivo chamado HibernateUtil.java. Esta classe de utilitário cria um SessionFactory com base em seu arquivo de configuração.
Copie o seguinte código para este arquivo:
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; } }
Defina sua Movie entidade
No diretório org/example do seu projeto, crie um novo arquivo chamado Movie.java. Esse arquivo contém sua entidade Movie, que representa a coleção de amostras sample_mflix.movies dos conjuntos de dados de amostra do Atlas.
Copie o seguinte código para este arquivo:
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 arquivo define uma entidade Movie com os seguintes campos:
id: o identificador exclusivo do filme, mapeado para o campo MongoDB_id.title: O título do filme.year: o ano em que o filme foi lançado.cast: uma lista de strings representando os membros do elenco do filme.
Defina sua principal classe de aplicativo
No diretório org/example do seu projeto, crie um novo arquivo chamado Main.java. Esse arquivo contém sua classe de aplicativo principal, que armazena a lógica do seu aplicativo.
Copie o seguinte código para este arquivo:
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(); } }
Depois de concluir essas etapas, você terá um aplicativo Java configurado para usar a extensão ORM do Hibernate e se conectar à sua implantação MongoDB. Seu aplicativo tem a seguinte estrutura de arquivo:
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)
Executar uma query de amostra
Você pode executar queries em seus objetos Movie, que a extensão traduz em queries do MongoDB.
Execute uma consulta no title campo
Navegue até seu arquivo Main.java e cole o seguinte código abaixo do comentário // 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 usa a linguagem de query do Hibernate ORM (HQL) para recuperar sample_mflix.movies documentos que têm um valor title de "Little Women". Em seguida, imprime os valores title e year de cada resultado.
Dica
Para aprender mais sobre HQL, consulte Linguagem de query do Hibernar no guia de usuário do Hibernado ORM.
Gravar dados no MongoDB
Você pode gravar dados em sua implantação do MongoDB criando e modificando seus objetos Movie.
Inserir um documento na movies collection
Em seu arquivo Main.java, adicione o seguinte código para criar uma instância de entidade Movie chamada myMovie e salvá-la no banco de dados:
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 cria uma nova instância de entidade Movie e utiliza o método session.persist() para salvá-la no banco de dados.
Atualizar um documento
Adicione o seguinte código ao seu arquivo Main.java para atualizar a instância do Movie que você criou na etapa anterior:
myMovie.getCast().add("Jennifer Grey"); System.out.println("Movie updated with new cast: " + myMovie.getCast());
Este código recupera o valor cast atual e adiciona um novo membro do elenco a ele. A extensão ORM do Hibernar aplica esta alteração ao documento correspondente no banco de dados.
Excluir um documento
Adicione o seguinte código ao seu arquivo Main.java para excluir a instância de entidade myMovie:
session.remove(myMovie); System.out.println("Movie deleted with ID: " + myMovie.getId());
Este código exclui a instância da entidade myMovie e seu documento correspondente do banco de dados.
Próximos passos
Parabéns por concluir o tutorial!
Observação
Se você tiver problemas neste tutorial, enviar feedback usando a aba Rate this page no lado direito desta página.
Você pode encontrar suporte para perguntas gerais usando a tag MongoDB Stack Overflow ou a comunidade MongoDB Reddit.
Neste tutorial, você criou um aplicativo Java que se conecta a uma implantação do MongoDB hospedada no MongoDB Atlas e usa a extensão Hibernate ORM para interagir com seus dados.
Para saber mais sobre a extensão Hibernate ORM, consulte os seguintes recursos:
código fonte mongo-hibernar no GitHub
Para visualizar um tutorial de primeiros passos que mostra como instalar a extensão ORM do Hibernate e realizar a interação com os dados do livro, consulte a publicação no blog Primeiros Passos com Hibernate ORM e MongoDB Foojay.
