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.
Menu Docs

Introdução ao Spring Boot Starter

Neste tutorial, você pode aprender a criar um aplicação Spring Boot que armazena entidades Java Persistence API (JPA) no MongoDB usando a extensão ORM Hibernado. O aplicação 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 MongoDB Deployment e Criar uma connection string do tutorial Introdução à extensão ORM do Hibername. Essas etapas criam a implantação do Atlas , dados de exemplo e string de conexão que este tutorial utiliza.

1

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

O Spring Initializr gera uma classe de aplicação 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 do aplicação principal gerado automaticamente. Você criará um arquivo de aplicação principal para este projeto denominado Movie Application mais tarde neste tutorial. Se o seu projeto contiver duas classes de aplicação principais, seu aplicação não iniciará 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 iniciante exige Hibernar ORM 7.4 ou posterior. O Spring Boot gerencia a versão do Hibernar ORM por meio de sua lista de materiais (BOM), e algumas versões do Spring Boot 4.x gerenciam uma versão anterior do Hibername ORM do que a versão que o inicial exige. Se a versão gerenciada for anterior a 7.4, seu aplicação falhará ao iniciar e a extensão ORM do Hibername lançará um 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 substituir 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 sincronize 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=MongoDB
spring.mongodb.uri=<connection string>
spring.jpa.properties.com.mongodb.hibernate.semantics.nulls=MQL

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

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

As propriedades do aplicação que você define fazem o seguinte:

  • spring.jpa.database-platform: Ativa o motor de partida. O motor de partida permanece inativo a menos que você defina esta propriedade para MongoDB.

  • spring.mongodb.uri: configura a instância MongoClient que o inicial reutiliza. O iniciante não cria um cliente próprio.

  • spring.jpa.properties.com.mongodb.hibernate.semantics.nulls: declara a semântica de comparação nula que as queries utilizam. Essa 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 a partir dos conjuntos de dados de amostra do Atlas . O iniciador verifica o pacote principal do seu aplicativo em busca de entidades, para que você não precise 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 iniciador habilita repositórios JPA do Spring Data sem um SQL DataSource, portanto 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;
@SpringBootApplication
public 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.

Depois de concluir estas etapas, seu aplicação terá a seguinte estrutura de arquivo:

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 em seu IDE. Seu resultado se assemelha ao seguinte texto:

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

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

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

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

Para saber como consultar seus dados, consulte a seção Interagir com dados .