从旧版本升级

本页面包含驱动程序从 5.28 版本到 6.x 版本的新特性及重大变更列表。如需完整变更列表,请参阅 驱动程序更新日志

6.x 系列的最新驱动程序版本兼容 Neo4j 4.4、5.x 和 202[56].x 服务器,因此您可以在升级服务器之前先升级驱动程序。同时,驱动程序 5.28 版本向前兼容 Neo4j 202[56].x 服务器,因此您也可以先升级服务器再升级驱动程序;但考虑到回滚应用程序升级比回滚服务器升级更容易,建议先从驱动程序开始。

将 Neo4j 服务器升级到较新版本时,应用程序中的 Cypher 查询可能也需要更新。驱动程序迁移助手(Drivers Migration Assistent)不涵盖 Cypher 的更改。
请参阅 Cypher → 弃用、新增与兼容性

新功能

新增 Vector 类型

Vector 类型允许在数据库中存储和检索 Cypher VECTOR 对象。VECTOR 类型适用于高效存储同构数字列表,例如嵌入(embeddings)。

错误中的 GQL 状态对象

错误对象现在也以 GQL-status 对象的形式公开错误。Neo4j 错误代码与 GQL 错误代码的主要区别在于后者更为细致。有关更多信息,请参阅 错误处理

重大更改与弃用

被弃用的功能很可能会在下一个主要版本中被移除。

版本 消息 状态

6.0

Session —— .readTransaction().writeTransaction() 方法已被移除,取而代之的是 .executeRead().executeWrite()

通过这些新方法,事务函数的第一个参数将是一个 ManagedTransaction 对象。它的行为类似于普通的 Transaction 对象,但它不提供 .commit().rollback().close().closed() 方法。

已移除

6.0

Session —— .lastBookmark() 方法已被移除,取而代之的是 .lastBookmarks()

已移除

6.0

Notification —— .severity 属性已被移除。请使用 .rawSeverityLevel 获取原始值,使用 .severityLevel 获取枚举值。

已移除

6.0

ResultSummary —— .updateStatistics 属性已被移除,取而代之的是 .counters

已移除

6.0

Driver —— .verifyConnectivity() 方法的返回类型已从 ServerInfo 更改为 void。若要获取服务器信息,请使用 .getServerInfo()

已更改

6.0

ServerInfo —— protocolVersion 属性的返回类型已从 number 更改为 ProtocolVersion

已更改

5.0

Node, Relationship —— .identity (NumberOrInteger) 属性已弃用,取而代之的是 .elementId (String)。

已弃用

5.0

Relationship —— .start.end 属性已弃用,取而代之的是 .startNodeElementId.endNodeElementId。旧标识符为 NumberOrInteger 类型,而新的 ElementId 为 string 类型。

已弃用

6.0

Neo4jError —— .isRetriable() 方法已弃用,取而代之的是 .isRetryable()

已弃用

6.0

Date —— 由于时区处理方式不明确,.fromStandardDate() 方法已被弃用。.fromStandardDateLocal() 是直接替代方案,但对某些用户而言,使用 .fromStandardDateUTC() 可能更合适。

已弃用

6.0

作为 Neo4j 状态码的 通知 (Notifications) 已被弃用,取而代之的是 GQL 状态对象。

因此:

已弃用

6.0

已弃用