Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Comece a usar o Spring Boot Starter

Neste tutorial, você pode aprender como criar um aplicativo Spring Boot que armazena entidades da Java Persistence API (JPA) no MongoDB usando a extensão Hibernate ORM. O aplicativo define uma entidade Movie, um repositório Spring Data JPA e uma query que é executada na inicialização.

Antes de começar, conclua as etapas Criar uma implantação do MongoDB e Criar uma string de conexão do tutorial Introdução à extensão Hibernate ORM. Essas etapas criam a implantação do Atlas, os dados de amostra e a string de conexão que este tutorial usa.

1

Crie um projeto Spring Boot 4.x chamado MongoHibernateSpringQuickstart. Você pode gerar o projeto usando o Spring Initializr ou criá-lo em sua IDE.

O Spring Initializr gera uma classe de aplicativo principal com o nome do seu projeto, como MongoHibernateSpringQuickstartApplication.java. Se você usar o Spring Initializr para gerar seu projeto, exclua o arquivo de classe de aplicativo principal gerado automaticamente. Você criará um arquivo de aplicativo principal para este projeto chamado Movie Application mais adiante neste tutorial. Se o seu projeto contiver duas classes de aplicativo principais, o aplicativo não será iniciado com um erro Unable to find a single main class.

2

Para projetos Maven, adicione a seguinte dependência ao seu arquivo pom.xml:

<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-hibernate-spring-boot-starter</artifactId> <version>1.0.0</version> </dependency></dependencies>

Para projetos Gradle, adicione a seguinte dependência ao seu arquivo build.gradle:

dependencies { implementation("org.mongodb:mongodb-hibernate-spring-boot-starter:1.0.0")}
3

O starter requer o Hibernate ORM 7.4 ou posterior. O Spring Boot é gerenciado pela versão do Hibernate ORM por meio de sua lista de materiais (BOM), e algumas versões do Spring Boot 4.x gerenciam uma versão anterior do Hibernate ORM do que a versão que o starter requer. Se a versão gerenciada for anterior à 7.4, seu aplicativo não iniciará e a extensão Hibernate ORM lançará uma NoSuchMethodError.

Para substituir a versão gerenciada em um projeto Maven, adicione a seguinte propriedade ao seu arquivo pom.xml:

<properties> <hibernate.version>7.4.7.Final</hibernate.version></properties>

Para sobrepor a versão gerenciada em um projeto Gradle, adicione a seguinte linha ao seu arquivo build.gradle:

ext['hibernate.version'] = '7.4.7.Final'

Recarregue ou faça a sincronização de seu projeto para concluir a instalação.

1

No diretório src/main/resources do seu projeto, abra o arquivo application.properties e adicione as seguintes propriedades:

spring.jpa.database-platform=MongoDBspring.mongodb.uri=<connection string>spring.jpa.properties.com.mongodb.hibernate.semantics.nulls=MQL

Substitua o placeholder <connection string> pela string de conexão sample_mflix que você criou na etapa Criar uma string de conexão do tutorial Introdução à extensão Hibernate ORM. Sua string de conexão deve ser semelhante ao seguinte exemplo:

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

As propriedades do aplicativo que você define fazem o seguinte:

  • spring.jpa.database-platform: Ativa o starter. O starter permanece inativo, a menos que você defina esta propriedade como MongoDB.

  • spring.mongodb.uri: Configura a instância MongoClient que o starter reutiliza. O starter não cria seu próprio cliente.

  • spring.jpa.properties.com.mongodb.hibernate.semantics.nulls: Declara a semântica de comparação de nulos que as query usam. Esta propriedade é obrigatória e seu único valor suportado é MQL.

2

No diretório src/main/java/org/example do seu projeto, crie um arquivo chamado Movie.java e cole o seguinte código nele:

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; @Entity@Table(name = "movies")public class Movie { @Id @ObjectIdGenerator private ObjectId id; private String title; private int year; public Movie() { } public Movie(String title, int year) { this.title = title; this.year = year; } public ObjectId getId() { return id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getYear() { return year; } public void setYear(int year) { this.year = year; }}

Esta entidade representa a coleção sample_mflix.movies dos conjuntos de dados de amostra do Atlas. O starter verifica o pacote principal do seu aplicativo em busca de entidades, portanto, você não precisa registrar a entidade.

3

No mesmo diretório, crie um arquivo chamado MovieRepository.java e cole o seguinte código nele:

package org.example; import org.bson.types.ObjectId;import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface MovieRepository extends JpaRepository<Movie, ObjectId> { List<Movie> findByTitle(String title);}

O starter habilita repositórios Spring Data JPA sem um DataSource SQL, então o Spring Boot implementa a interface MovieRepository para você.

4

No mesmo diretório, crie um arquivo chamado MovieApplication.java e cole o seguinte código nele:

package org.example; import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.Bean; @SpringBootApplicationpublic class MovieApplication { public static void main(String[] args) { SpringApplication.run(MovieApplication.class, args); } @Bean CommandLineRunner run(MovieRepository repository) { return args -> { for (Movie movie : repository.findByTitle("Little Women")) { System.out.println("Title: " + movie.getTitle() + ", Year: " + movie.getYear()); } }; }}

Esta classe executa uma query de repositório na inicialização e imprime cada filme correspondente.

Após concluir estas etapas, seu aplicativo terá a seguinte estrutura de arquivos:

MongoHibernateSpringQuickstart├── src│ └── main│ ├── java│ │ └── org/example│ │ ├── Movie.java│ │ ├── MovieApplication.java│ │ └── MovieRepository.java│ └── resources│ └── application.properties├── .gitignore├── pom.xml (for Maven projects)└── build.gradle (for Gradle projects)

Execute a classe MovieApplication no seu IDE. Sua saída se assemelha ao seguinte texto:

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

Se o seu aplicativo não iniciar, consulte Solução de problemas de erros de inicialização para obter possíveis erros de inicialização e dicas de solução de problemas.

Para aprender como definir propriedades JPA, alterar a estratégia de nomenclatura de campo e personalizar o MongoClient, consulte Configurar o Spring Boot Starter.

Para aprender como modelar seus dados como entidades, consulte Criar entidades para representar coleções.

Para aprender a fazer query dos seus dados, consulte a seção Interação com Dados.