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

Compatibilidade de recursos

Nesta página, você pode encontrar informações sobre os recursos compatíveis e não suportados na extensão Hibername ORM. A extensão Hibernate ORM tem suporte apenas a conjuntos de réplicas MongoDB. Quando você usa um recurso não suportado, a extensão ORM do Hibername lança um UnsupportedFeatureException.

Você pode solicitar suporte para uma funcionalidade criando uma ideia AHA. Priorizamos os próximos recursos com base na demanda do usuário.

Esta seção indica se a extensão Hibernar ORM é compatível com várias funcionalidades do MongoDB .

Para ver uma lista de todos os BSON types suportados na extensão Hibernate ORM, consulte a seção MongoDB BSON Fields no guia Criar Entidades.

Funcionalidade do MongoDB
Suporte de disponibilidade geral (GA)

Gravações em massa

✓

Excluir operações

✓

Consultas geoespaciais

Não compatível. No entanto, o método createNativeQuery() suporta queries geoespaciais. Inclua o estágio de pipeline $geoWithin ou $near em sua declaração de linguagem de query do MongoDB . Para saber mais sobre queries nativas, consulte o guia Executar queries de banco de dados nativas.

Inserir operações

✓

Queries de pesquisa do MongoDB

Não compatível. No entanto, o método createNativeQuery() oferece suporte a queries de pesquisa. Inclua o estágio de pipeline $search em sua declaração de linguagem de query do MongoDB . Para exibir um exemplo, consulte a seção Executar uma query de pesquisa do MongoDB no guia Executar queries de banco de dados nativas.

Queries do MongoDB Vector Search

Não compatível. No entanto, o método createNativeQuery() oferece suporte a queries do Vector Search . Inclua o estágio de pipeline $vectorSearch em sua declaração de linguagem de query do MongoDB . Para saber mais sobre queries nativas, consulte o guia Executar queries de banco de dados nativas.

Query nativa com MQL

✓

Projeções

Parcialmente suportado. Expressões de aggregation dentro de projeções de query não são suportadas, e você deve incluir todos os campos de entidade em sua projeção.
Quando o estágio do terminal $project não especifica _id, a extensão ORM do Hibernar exclui _id dos resultados em vez de devolvê-lo implicitamente. Uma query nativa que vincula seus resultados a uma entidade deve projeto _id explicitamente.

Ler operações

✓

Atualizar operações

✓

Operações upsert

Parcialmente suportado. As operações de upsert são suportadas em entidades não versionadas por meio da API StatelessSession. Não suporta entidades que têm um campo anotado com @Version. Para saber mais, consulte a seção Atualizar documentos no guia Executar operações CRUD.

Funcionalidade do MongoDB
Suporte de disponibilidade geral (GA)

Fluxos de alterações

Não compatível. No entanto, você pode usar um change stream por meio do MongoDB Java Driver. Para saber mais, consulte a seção Open Change Streams na documentação do Java Driver.

Criptografia no nível do campo do lado do cliente (CSFLE) e Queryable Encryption (QE)

Não compatível. Estamos considerando esse recurso para um lançamento futuro. No entanto, você pode configurar o CSFLE/QE ao configurar o driver Java do MongoDB . Para saber mais, consulte a documentação do CSFLE no manual do MongoDB Server .

GridFS

Não compatível. No entanto, você pode usar o GridFS por meio do driver Java do MongoDB . Para saber mais, consulte o guia Armazenamento de arquivos grandes com GridFS na documentação do Driver Java .

Dados de Time Series

Não compatível. No entanto, você pode criar uma coleção de séries temporais por meio do driver Java do MongoDB . Para saber mais, consulte o guia Coleções de séries temporais na documentação do driver Java .

Instâncias mongod autônomas

Não compatível. Recomendamos que você converta quaisquer instâncias autônomo em um conjunto de réplicas. Para saber mais, consulte Converter um mongod autônomo autogerenciado em um conjunto de réplicas no manual do MongoDB Server.

Visualizações

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, chame o método createView() na sua instância do MongoDatabase para criar uma nova visualização.

Funcionalidade do MongoDB
Suporte de disponibilidade geral (GA)

Bloqueio

Parcialmente suportado. O bloqueio otimista é suportado em entidades que têm um campo anotado com @Version. A extensão ORM do Hibername adiciona o valor da versão atual ao filtro MQL para cada atualização e exclusão e lança um OptimisticLockException quando a versão não corresponde mais. Para saber mais, consulte o guia Evite atualizações conflitantes com

bloqueios otimistas. Não suporta Bloqueio Pessimista.

Transações

✓

Funcionalidade do MongoDB
Suporte de disponibilidade geral (GA)

Associações

Parcialmente suportado. As anotações @OneToOne, @OneToMany, @ManyToOne, @ManyToMany e @ElementCollection são aceitas. As anotações @SecondaryTable e @JoinFormula não são suportadas e causam um erro quando o SessionFactory inicia.

IDs de geração automática

Parcialmente suportado. A geração automática de ObjectIds é compatível. No entanto, você pode definir manualmente os identificadores String e int.

A anotação @GeneratedValue suporta a geração de estilo de sequência, que a extensão ORM do Hibernado apoia com uma coleção de contadores chamada hibernate_sequences. A

geração automática de identificadores java.util.UUID é suportada por meio da anotação @UuidGenerator ou da anotação @GeneratedValue(strategy = UUID).

Não suporta as estratégias IDENTITY e TABLE, identificadores BigInteger e BigDecimal e um elemento @SequenceGenerator options não em branco.

Chaves primárias compostas

Parcialmente suportado. Declare uma chave composta com @EmbeddedId em uma classe ou registro @Embeddable padrão. A extensão Hibername ORM armazena a chave como um subdocumento _id e nunca gera seu valor.

Não é compatível com a anotação @IdClass, vários atributos @Id, um identificador agregado e incorporável @Struct, um componente de chave não escalar e identidade derivada por meio de @MapsId.

Para saber mais, consulte a seção Chaves primárias compostas no guia Criar entidades.

Estratégia de herança

Parcialmente suportado. Herança de tabela única e superclasses mapeadas são suportadas. Não suporta as estratégias JOINED e TABLE_PER_CLASS. Para saber mais, consulte o guia Mapear uma hierarquia de herança de entidade.

@JdbcTypeCode Anotação

Não compatível.

Busca preguiçosa/ansiosa

Não compatível.

Encomenda

✓

@Table.catalog Elemento

Não compatível. A extensão Hibername ORM rejeita o elemento @Table.catalog e a propriedade hibernate.default_catalog no bootstrap porque o MongoDB não suporta operações $lookup entre bancos de dados. Crie uma instância do SessionFactory para cada banco de dados .

@Table.schema Elemento

✓
Mapeia para um prefixo de nome de coleção dentro de um único banco de dados MongoDB .

Validação

✓

Funcionalidade do MongoDB
Suporte de disponibilidade geral (GA)

Capped collections

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, crie uma collection limitada especificando CreateCollectionOptions.capped(true) como um parâmetro em sua chamada createCollection().

Clustered Collections

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, crie um documento chamado clusteredIndex e defina seu índice agrupado. Use esse índice clusterizado como parte do documento que você passa para o método MongoDatabase.runCommand() , que define a collection clusterizada.

Índices compostos

✓

Índices de documentos incorporados

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, chame o método aninhado MongoCollection.createIndex(Indexes.ascending("field.subfield")). Este método usa caminhos de chave aninhados " campo.subfield" para criar um índice de documento incorporado .

Índices geoespaciais

Não compatível. No entanto, você pode usar índices geoespaciais por meio do driver Java do MongoDB . Para saber mais, consulte a seção Índices geoespaciais do guia Índices na documentação do driver Java .

Índices de pesquisa do MongoDB

Não compatível. No entanto, você pode usar índices de pesquisa do MongoDB por meio do driver Java do MongoDB . Para saber mais, consulte a seção Índices de pesquisa e Vector Search do MongoDB do guia Índices na documentação do Driver Java .

Índices de Vector Search do MongoDB

Não compatível. No entanto, você pode usar índices do MongoDB Vector Search por meio do MongoDB Java Driver. Para saber mais, consulte a seção Índices de pesquisa e Vector Search do MongoDB do guia Índices na documentação do Driver Java .

Multikey Indexes

Não compatível. No entanto, você pode usar índices de várias chaves por meio do driver Java do MongoDB . Para saber mais, consulte a seção Índices multichave (índices em campos de array) do guia Índices na documentação do driver Java .

Índices Parciais

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, chame o método aninhado MongoCollection.createIndex(Indexes.partialFilterExpression()) para criar um índice parcial.

Validação de esquema

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, crie um validador executando o comando collMod através do método MongoDatabase.runCommand().

Índices de campo único

✓

Sparse Indexes

Não compatível. No entanto, você pode usar o driver Java do MongoDB para definir uma instância MongoClient. Em seguida, especifique IndexOptions().sparse(true) como um parâmetro em sua chamada ao método MongoCollection.createIndex() para criar um Enterprise Advanced.

Unique Indexes

✓

Atualização de índices de modelo incorporado após a criação do modelo

Não compatível. No entanto, você pode soltar e recriar o índice do modelo incorporado manualmente.

Para saber mais sobre índices, consulte o guia Índices para otimização de queries.

Esta seção indica se a extensão Hibernar ORM oferece suporte a vários recursos do Hibernado ORM.

Tipo de Dados
Suporte de disponibilidade geral (GA)

Tipos de coleção (List, Set, Maps, arrays)

✓
@ElementCollection e CollectionTable não são suportados. No entanto, as collections de estruturas incorporadas são suportadas por meio de classes encapsuladas anotadas com @Embeddable e @Struct.

Entidades incorporáveis, tipos escalares

Parcialmente suportado. Os tipos java.time.Instant, java.time.Duration, java.time.Year, java.time.ZoneId, java.time.ZoneOffset e java.util.TimeZone são aceitos para entidades de nível superior e aninhadas.

Entidades incorporadas, binárias

✓

Entidades incorporadas, tipos de identificador

Parcialmente suportado. Defina manualmente o ID de uma entidade antes de persistir uma entidade.

Entidades Incorporadas, JSON

✓

Entidades incorporadas, semântica nula

✓

Entidades de nível superior, binários

✓

Entidades de nível superior, tipos de identificador

✓
Atribua manualmente UUIDs antes de persistir uma entidade ou gere-os automaticamente usando a anotação @UuidGenerator.

Entidades de nível superior, JSON

✓

Entidades de nível superior, semântica nula

✓

Entidades de nível superior, tipos escalares

✓

Entidades de nível superior, tipos temporais

Parcialmente suportado. Os tipos java.time.Instant, java.time.Duration, java.time.Year, java.time.ZoneId, java.time.ZoneOffset e java.util.TimeZone são aceitos para entidades de nível superior e aninhadas.

Lógica ternária (verdadeiro, falso ou DESCONHECIDO)

Não compatível.

A extensão ORM do Hibernar exige que você defina a propriedadecom.mongodb.hibernate.semantics.nulls e MQL é o único valor suportado. As comparações nulas seguem a semântica da Linguagem de Query do MongoDB em vez da lógica ternária do Hibername ORM. A extensão ORM do Hibername lança uma exceção na inicialização quando a propriedade não está definida.

Funcionalidade ORM do Hibernar
Suporte de disponibilidade geral (GA)

queries HQL e JPQL, operadores agregados

✓

Queries HQL e JPQL, operadores aritméticos

Parcialmente suportado. Suporta os operadores +, -, *, /, div e unários - e + nas cláusulas SELECT e WHERE.

Não suporta chamadas de função como operandos, incluindo o operador HQL %, que o Hibername ORM reescreve para uma chamada de função mod().

Para saber mais, consulte a seção Usar expressões computadas no guia Especificar uma query.

Queries HQL e JPQL, operadores de array

✓

Queries HQL e JPQL, funções de data e hora

Parcialmente suportado. Suporta as funções extract() e format() em um campo de data e hora em uma cláusula SELECT, traduzindo-as para operadores de data MongoDB e o operador $dateToString. Cada função oferece suporte a um conjunto específico de campos de data e hora e códigos de padrão. Para saber mais, consulte o guia Usar funções de data/hora em queries.

Queries HQL e JPQL, expressões de caso

Parcialmente suportado.

  • Suporta expressões CASE simples e pesquisadas em uma cláusula SELECT, como um operando de uma comparação em uma cláusula WHERE e na cláusula SET de uma declaração de atualização em massa. Traduz para o operador MongoDB $switch.

  • Não suporta expressões CASE em uma cláusula ORDER BY, a menos que a mesma expressão CASE seja uma chave GROUP BY. Além disso, não suporta expressões CASE como a expressão de correspondência de um predicado LIKE, como a expressão de teste de um predicado IN ou IS NULL, ou como um predicado de cláusula WHERE.

Para obter mais informações e ver um exemplo, consulte a seção Usar expressões de caso para lógica condicional no guia Especificar uma query.

queries HQL e JPQL, operadores de comparação

  • >, >=, <, <=, =, <>: Suportado, inclusive com operandos computados. Para saber mais, consulte a seção Usar expressões computadas no guia Especificar uma query.

  • EXISTS: Parcialmente suportado. Suporta uma subquery EXISTS que filtra elementos da array incorporada de um único campo, traduzindo-a para o operador MongoDB $elemMatch. Não suporta determinadas subqueries EXISTS. Para saber mais, consulte a seção EXISTS no guia Especificar uma query.

  • BETWEEN: Suportado. Traduz para os operadores MongoDB $gte e $lte. Para saber mais, consulte a seção entre noguia Especificar uma consulta.

  • IS NULL e IS NOT NULL: suportado. Corresponde a valores explicitamente nulos e campos ausentes ou a negação dessesvalores, traduzindo para o operador $match do MongoDB . Para saber mais, consulte as seções É NULL e NÃO É NULL no guia Especificar uma query.

  • IN e NOT IN: parcialmente suportado. Suporta uma lista de literais ou parâmetros testados em relação a um caminho do campo, traduzindo para os operadores MongoDB $in e $nin. Não suporta uma subquery ou uma expressão com valor de array como a lista. Para saber mais, consulte as seções IN e NÃO IN no guia Especificar uma query.

  • Comparações com null: Suportado. Aplica semântica nula da Linguagem de Query MongoDB em vez de lógica ternária ORM do Hibernado, portanto, uma comparação com null corresponde a valores explicitamente nulos e campos ausentes. Para saber mais, consulte a seção Comparar valores de campo com nulo no guia Especificar uma query.

  • Predicados de valor de linha: Parcialmente suportado. Suporta os operadores =, <>, IN e NOT IN em uma lista de campos entre parênteses, como where (title, year) = (:t, :y), traduzindo cada predicado em comparações MongoDB $eq por componente. Não suporta predicados de valor de linha que utilizam o operador >, >=, < ou <=. Para saber mais, consulte a seção Comparar vários campos de uma só vez no guia Especificar uma consulta.

  • LIKE: Suportado. Traduz para o operador MongoDB$regex.

  • ANY, ALL: não suportado. Você pode usar o método createNativeQuery() e passar operadores de comparação em sua declaração de linguagem de query do MongoDB . Para saber mais sobre queries nativas, consulte o guia Executar queries de banco de dados nativas.

Queries HQL e JPQL, operadores de elementos

✓

Queries HQL e JPQL, operadores de avaliação

Parcialmente suportado. Suporta o operador de avaliação MongoDB $regex traduzindo os predicados LIKE, NOT LIKE, ILIKE e NOT ILIKE para filtros de expressão regular. Para obter mais informações e ver exemplos, consulte a seção LIKE no guia Especificar uma query.

Queries HQL e JPQL, cláusulas GROUP BY e HAVING

Suportado. Você pode agrupar por uma referência de coluna ou por uma expressão e filtrar os resultados agrupados em uma cláusula HAVING. Você também pode ordenar por uma chave GROUP BY que é uma expressão, como em select b.total + 1 from Item as b group by b.total + 1 order by b.total + 1. Você pode usar a palavra-chave distinct em um acumulador, como em count(distinct b.total).

Queries HQL e JPQL, JUNTAS

Parcialmente suportado. Você pode unir entidades navegando em uma associação mapeada, como em from Movie m join m.comments c, ou nomeando uma entidade e fornecendo uma cláusula ON, como em from Movie m join Comment c on c.date > m.released. Cada junção se traduz em um estágio do MongoDB $lookup e $unwind. Para visualizar exemplos, consulte o guia Join Entities Across Collection.

  • Conexões internas e externas esquerdas: suportadas.

  • JOIN FETCH cláusulas: Suportado.

  • Ligações encadeadas: suportadas. Você pode participar de mais de duasentidades.

  • Acesso a chaves compostas: Parcialmente suportado. Você pode ingressar em uma associação @ManyToOne ou @OneToOne cuja entidade de destino tenha uma chave composta @EmbeddedId. Você também pode comparar identificadores compostos inteiros com = em uma condição ON.

    Não suporta a anotação @JoinColumn em tal associação, ordenando comparações entre identificadores inteiros e associações @ManyToMany que envolvem uma chave composta.

    Para saber mais, consulte a seção Junções de chaves compostas no guia Unir entidades em coleções.

  • ON condições: Parcialmente suportado. Uma condição ON suporta os mesmos operadores de comparação, lógicos e de predicados que uma cláusula WHERE. Isso inclui condições compostas que combinam múltiplas comparações de campo com AND ou OR e condições de faixa e desigualdade. Uma condição ON deve comparar colunas. Não é possível comparar referências de entidade, como em on m = c.movie, ou navegar em uma associação dentro da condição, como em on c.movie.title = 'Blue Jasmine'.

  • Ligações externa direita, externa completa, cruzada, lateral e de subquery: não suportadas. Você pode usar o método createNativeQuery() para executar uma operação de agregação que consulta várias collections. Para saber mais sobre queries nativas, consulte o guia Executar queries de banco de dados nativas.

queries HQL e JPQL, operadores lógicos

✓

Queries HQL e JPQL, funções de string

Parcialmente suportado. Suporta o character_length(), length(), substring(), trim(), upper(), lower(), pad(), lpad(), rpad(), concat(), locate() e repeat() funções e o operador de concatenação ||. Outras funções de string do Hibername ORM não são suportadas.

Funcionalidade ORM do Hibernar
Suporte de disponibilidade geral (GA)

Cache de primeiro nível

✓

Cache de segundo nível

✓

Esta seção indica se a extensão Hibernate ORM suporta vários frameworks ou bibliotecas externas.

Framework ou Library
Suporte de disponibilidade geral (GA)

Spring Boot e Spring Data JPA

Parcialmente suportado. A extensão ORM do Hibernar fornece um iniciador do Spring Boot que configura os repositórios JPA e Spring Data JPA apoiados MongoDB. Não garantimos suporte para todos os recursos do Spring Boot ou Spring Data. Para saber mais, consulte a seção Integração do Spring Boot e Spring Data JPA.