Docs 菜单
Docs 主页
/ /

Hibernate ORM 功能兼容性

在此页面上,您可以找到有关 Hibernate ORM 扩展支持和不支持的功能的信息。 Hibernate ORM 扩展仅支持MongoDB副本集。当您使用不支持的功能时,Hibernate ORM 扩展会引发 UnsupportedFeatureException

您还可以在此页面上找到当前计划在未来版本中提供的功能。我们将根据用户需求对这些即将推出的功能进行优先级排序,您可以通过 创建 AHA 创意请求对某项功能的支持。

MongoDB Extension for Hibernate ORM 目前提供公共预览版。不建议将公共预览版用于生产部署,因为可能会引入重大更改。

本部分指示 Hibernate ORM 扩展是否支持各种MongoDB功能。

要查看 Hibernate ORM 扩展支持的所有BSON 类型的列表,请参阅创建实体指南中的 MongoDB BSON字段部分。

MongoDB功能
公共预览版支持
正式可用性 (GA) 支持

批量写入

删除操作

地理空间查询

不受支持。但是, createNativeQuery()$geoWithin$near方法支持地理空间查询。在MongoDB查询语言声明中包含 管道阶段。要学习;了解有关原生查询的更多信息,请参阅执行原生数据库查询指南。

我们正在考虑在 GA发布中提供此功能。

插入操作

MongoDB Search 查询

不受支持。但是, createNativeQuery()$search方法支持搜索查询。在MongoDB查询语言声明中包含 管道阶段。要查看示例,请参阅“执行原生数据库查询”指南中的“运行MongoDB搜索查询”部分。

我们正在考虑在 GA发布中提供此功能。

MongoDB Vector Search 查询

不受支持。但是, createNativeQuery()$vectorSearch方法支持向量搜索查询。在MongoDB查询语言声明中包含 管道阶段。要学习;了解有关原生查询的更多信息,请参阅执行原生数据库查询指南。

我们正在考虑在 GA发布中提供此功能。

使用MQL进行原生查询

Partially Supported. Parameter binding is not supported.

投影

Partially Supported. Aggregation expressions within query projections are not supported, and you must include all entity fields in your projection.
Partially Supported. The same aggregation expression and entity field limitations apply.

读取操作

更新操作

更新或插入操作

不受支持。但是,您可以先查询集合以检查指定的值是否存在,然后在该值存在时进行插入或更新。

我们正在考虑在 GA发布中提供此功能。

MongoDB功能
公共预览版支持
正式可用性 (GA) 支持

Change Streams

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,使用MongoClient.watch() 方法打开变更流。

我们正在考虑在 GA发布中提供此功能。

客户端字段级加密(CSFLE) 和Queryable Encryption(QE)

不受支持。但是,您可以在配置MongoDB Java驱动程序时设置CSFLE/QE。

我们正在考虑在 GA发布中提供此功能。

GridFS

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,将GridFSBuckets.create() MongoDatabase实例作为参数调用 方法,以实例化 GridFSBucket。

我们正在考虑在 GA发布中提供此功能。

时间序列数据

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,创建一个新集合并指定timeSeriesOptions() 以创建时间序列集合。

我们正在考虑在 GA发布中提供此功能。

视图

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,对createView() MongoDatabase实例调用 方法以创建新视图。

我们正在考虑在 GA发布中提供此功能。

MongoDB功能
公共预览版支持
正式可用性 (GA) 支持

锁定

部分支持。支持乐观锁。

我们正在考虑在 GA发布中提供此功能。

事务

MongoDB功能
公共预览版支持
正式可用性 (GA) 支持

关联

不支持

自动生成 ID

部分支持。支持自动生成 ObjectId。但是,您可以手动设立UUID。

我们正在考虑在 GA发布中提供此功能。

继承策略

不支持

延迟/预先获取

不支持

不支持

排序

验证

MongoDB功能
公共预览版支持
正式可用性 (GA) 支持

固定大小集合

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,通过在 调用中将CreateCollectionOptions.capped(true) createCollection()指定为参数来创建固定大小集合。

我们正在考虑在 GA发布中提供此功能。

集群化集合

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,创建一个名为clusteredIndex 的文档并定义集群索引。使用此集群索引作为传递给MongoDatabase.runCommand() 方法的文档的一部分,该方法定义聚集文档。

我们正在考虑在 GA发布中提供此功能。

复合索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,调用嵌套方法MongoCollection.createIndex(Indexes.compoundIndex()) 创建复合索引。

我们正在考虑在 GA发布中提供此功能。

嵌入式文档索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,调用嵌套方法MongoCollection.createIndex(Indexes.ascending("field.subfield")) 。此方法使用嵌套键路径“字段.subfield”创建嵌入式文档索引。

我们正在考虑在 GA发布中提供此功能。

地理空间索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,调用嵌套方法MongoCollection.createIndex(geo2dsphere("location")) 以在location 字段上创建地理空间索引。

我们正在考虑在 GA发布中提供此功能。

MongoDB Search 索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,调用MongoCollection.createSearchIndex() 方法创建MongoDB Search索引。

我们正在考虑在 GA发布中提供此功能。

MongoDB Vector Search 索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,使用MongoCollection.createSearchIndexes() vector类型 调用SearchIndexModel 方法,创建MongoDB Vector Search索引。

我们正在考虑在 GA发布中提供此功能。

多键索引

不受支持。对大量字段使用默认MongoDB行为。

我们正在考虑在 GA发布中提供此功能。

部分索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,调用嵌套方法MongoCollection.createIndex(Indexes.partialFilterExpression()) 创建部分索引。

我们正在考虑在 GA发布中提供此功能。

模式验证

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,通过collMod 方法执行MongoDatabase.runCommand() 命令来创建验证器。

我们正在考虑在 GA发布中提供此功能。

单字段索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,调用嵌套方法MongoCollection.createIndex(Indexes.ascending("field"))field 字段上创建按升序排列的单个字段索引。

我们正在考虑在 GA发布中提供此功能。

稀疏索引

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,在调用IndexOptions().sparse(true) MongoCollection.createIndex()方法时将 指定为参数,以创建稀疏索引。

我们正在考虑在 GA发布中提供此功能。

Unique indexes

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,在调用IndexOptions().unique(true) MongoCollection.createIndex()方法时将 指定为参数,以创建稀疏索引。

我们正在考虑在 GA发布中提供此功能。

创建模型后更新嵌入式模型索引

不受支持。但是,您可以手动删除并重新创建嵌入式模型索引。

我们正在考虑在 GA发布中提供此功能。

本部分指示 Hibernate ORM 扩展是否支持各种 Hibernate ORM 功能。

数据类型
公共预览版支持
正式可用性 (GA) 支持

集合类型(列表、集、映射、数组)

✓. @ElementCollection and CollectionTable are not supported. However, collections of embedded structs are supported through embeddable classes annotated with @Embeddable and @Struct.
✓. The same @ElementCollection and CollectionTable limitations apply.

可嵌入式实体、标量类型

Partially Supported. The java.time.Instant type is supported for top-level and nested entities.
Partially Supported. The java.time.Instant type is supported for top-level and nested entities.

嵌入式实体,二进制

嵌入式实体、标识符类型

Partially Supported. Manually set the ID of an entity before persisting an entity.
We are considering this feature for GA release.

嵌入式实体, JSON

嵌入式实体、空语义

顶级实体,二进制

顶级实体、标识符类型

Manually assign UUIDs before persisting an entity.
Manually assign UUIDs before persisting an entity.

顶级实体, JSON

顶级实体、空语义

顶级实体、标量类型

顶级实体、时态类型

Partially Supported. The java.time.Instant type is supported for top-level and nested entities.
Partially Supported. The java.time.Instant type is supported for top-level and nested entities.

三元逻辑(True、False 或 UNKNOWN)

不受支持。

已计划。

Hibernate ORM 功能
公共预览版支持
正式可用性 (GA) 支持

HQL 和 JPQL 查询、聚合操作符

不受支持。但是, createNativeQuery()方法支持聚合操作符。在MongoDB查询语言声明中包含该操作符。要学习;了解有关原生查询的更多信息,请参阅执行原生数据库查询指南。

已计划。

HQL 和 JPQL 查询、算术操作符

不受支持。但是, createNativeQuery()方法支持算术操作符。要查看示例,请参阅《执行原生数据库查询》指南中的“使用算术操作符”部分。

我们正在考虑在 GA发布中提供此功能。

HQL 和 JPQL 查询、数组操作符

HQL 和 JPQL 查询、比较操作符

Partially Supported. The operators LIKE, BETWEEN, IN, EXISTS, ANY, ALL, and IS NULL are not currently supported. However, you can use the createNativeQuery() method and pass comparison operators in your MongoDB Query Language statement. To learn more about native queries, see the Perform Native Database Queries guide.
Planned.

HQL 和 JPQL 查询、元素操作符

HQL 和 JPQL 查询、评估操作符

不受支持。但是, createNativeQuery()方法支持计算操作符。在MongoDB查询语言声明中包含该操作符。要学习;了解有关原生查询的更多信息,请参阅执行原生数据库查询指南。

已计划。

HQL 和 JPQL 查询、联接

不受支持。但是,您可以使用MongoDB Java驱动程序来定义MongoClient 实例。然后,您可以使用聚合管道对多个集合查询。

已计划。

HQL 和 JPQL 查询,逻辑操作符

Hibernate ORM 功能
公共预览版支持
正式可用性 (GA) 支持

一级缓存

二级缓存

本部分指示 Hibernate ORM 扩展是否支持各种外部框架或库。

框架或库
公共预览版支持
正式可用性 (GA) 支持

Spring Boot 和 Spring Data

部分支持。我们不保证支持所有 Spring Boot 或 Spring Data 功能。有关使用 Hibernate ORM 扩展和 Spring Data 制作的应用的示例,请参阅带有MongoDB Hibernate App 的 Spring Data 。

部分支持。我们不保证支持所有 Spring Boot 或 Spring Data 功能。有关使用 Hibernate ORM 扩展和 Spring Data 制作的应用示例,请参阅带有MongoDB Hibernate App 的 Spring Data。

后退

事务

在此页面上