Visão geral
Hibernate ORM enables you to use Java objects to perform database operations, and you can use the MongoDB Extension for Hibernate ORM to simplify your application's interactions with MongoDB data. This guide shows how to install the Hibernate ORM extension, set up a MongoDB deployment, and create a Java application that defines classes mapped to MongoDB collections.
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 version 17 or later
Ambiente de desenvolvimento integrado (IDE), como IntelliJ IDEA ou Eclipse
Observação
Este tutorial mostra como criar um aplicação 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 saber 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 sincronizar seu projeto para concluir a instalação da extensão Hibernar 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.
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 aplicação 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>
Codifique sua string de conexão para XML
Antes de adicionar sua string de conexão a um arquivo de configuração XML em uma etapa futura, você deve codificar os seguintes caracteres especiais em sua string de conexão:
&: Substitua por&': Substitua por'": Substitua por"<: Substitua por<>: Substitua por>
Por padrão, sua string de conexão do Atlas inclui opções de conexão separadas pelo caractere &. Certifique-se de codificar em XML esse caractere.
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 Hibername e criar um cluster MongoDB Atlas , você pode criar um aplicação Java que se conecta ao MongoDB.
Conectar seu aplicação ao MongoDB
Navegue até o diretório MongoHibernateQuickstart do seu projeto src/main/resources e crie um novo arquivo denominado hibernate.cfg.xml, que armazena as definições de configuração do seu aplicativo.
Copie o seguinte código para este arquivo:
<hibernate-configuration> <session-factory> <property name="hibernate.dialect">com.mongodb.hibernate.dialect.MongoDialect</property> <property name="hibernate.connection.provider_class"> com.mongodb.hibernate.jdbc.MongoConnectionProvider </property> <property name="jakarta.persistence.jdbc.url"> connection-string </property> <property name="hibernate.show_sql">true</property> <mapping class="org.example.Movie"/> </session-factory> </hibernate-configuration>
Na jakarta.persistence.jdbc.url propriedade , substitua connection-string o espaço reservado 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 aplicação 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 do hibernate.cfg.xml.
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().configure("hibernate.cfg.xml").buildSessionFactory(); private HibernateUtil() {} public static SessionFactory getSessionFactory() { return SESSION_FACTORY; } }
Defina sua Movie entidade
No diretório do seu projeto, crie um novo arquivo org.example Movie.java chamado. Esse arquivo contém sua Movie entidade, que representa a sample_mflix.movies coleção de amostras 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 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 String[] cast; public Movie(String title, String plot, int year, 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 String[] getCast() { return cast; } public void setCast(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 array de strings representando os membros do elenco do filme.
Defina sua principal classe de aplicação
No diretório org.example do seu projeto, crie um novo arquivo chamado Main.java. Esse arquivo contém sua classe de aplicação 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; 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 aplicação Java configurado para usar a extensão ORM do Hibername e se conectar ao MongoDB deployment. Seu aplicação tem a seguinte estrutura de arquivo:
MongoHibernateQuickstart ├── src │ └── main │ ├── java │ │ └── org.example │ │ ├── HibernateUtil.java │ │ ├── Main.java │ │ └── Movie.java │ └── resources │ └── hibernate.cfg.xml ├── .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 Consulta do Hibernado 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 saber mais sobre HQL, consulte Linguagem de query do Hibernar no guia de usuário do Hibernado ORM.
Execute seu aplicativo
Execute o arquivo Main.java em seu IDE. Sua saída contém detalhes sobre o comando de banco de dados e os documentos recuperados:
Hibernate: {"aggregate": "movies", "pipeline": [{"$match": {"title": {"$eq": {"$undefined": true}}}}, {"$project": {"_id": true, "cast": true, "plot": true, "title": true, "year": true}}]} Title: Little Women, Year: 1949 Title: Little Women, Year: 1994
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 coleção
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 String[]{"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:
var updatedCast = new String[]{"Jesse Eisenberg", "Kieran Culkin", "Will Sharpe", "Jennifer Grey"}; myMovie.setCast(updatedCast); System.out.println("Movie updated with new cast member: " + updatedCast[3]);
Este código atualiza o campo cast da instância de entidade myMovie. 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.
Execute seu aplicativo
Execute o arquivo Main.java em seu IDE. Sua saída contém detalhes sobre suas operações de gravação:
Hibernate: {"insert": "movies", "documents": [{"cast": {"$undefined": true}, "plot": {"$undefined": true}, "title": {"$undefined": true}, "year": {"$undefined": true}, "_id": {"$undefined": true}}]} Hibernate: {"delete": "movies", "deletes": [{"q": {"_id": {"$eq": {"$undefined": true}}}, "limit": {"$numberInt": "0"}}]} Movie created with ID: <ObjectId> Movie updated with new cast member: Jennifer Grey Movie deleted with ID: <ObjectId>
Próximos passos
Parabéns por concluir o tutorial!
Observação
Se você tiver problemas neste tutorial, envie feedback usando a guia 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 aplicação Java que se conecta a um sistema do MongoDB hospedado no MongoDB Atlas e usa a extensão Hibername ORM para interagir com seus dados.
Para saber mais sobre a extensão Hibername ORM, consulte os seguintes recursos:
Hibernate ORM extension API documentation
código fontemongo-hibernar no GitHub
Documentaçãodo ORM do Hibernar
To view a Getting Started tutorial that shows how to install the Hibernate ORM extension and interact with book data, see the Getting Started With Hibernate ORM and MongoDB Foojay blog post.
