从旧版本升级

此页面包含从版本 4.4 到 5.x 驱动程序的新功能和破坏性更改列表。有关完整的更改列表,请参阅驱动程序 → 变更日志

5.x 系列的最新驱动程序版本 (5.28) 与 Neo4j 服务器 4.4 和 5.x 均兼容,因此您可以在升级服务器之前升级驱动程序。同时,驱动程序版本 4.4 向后兼容 Neo4j 服务器 5.x,因此您也可以在升级驱动程序之前升级服务器;然而,考虑到应用程序升级比服务器升级更容易回滚,建议从驱动程序开始升级。

将 Neo4j 服务器升级到新版本时,应用程序中的 Cypher 查询可能也需要更新。
请参阅Cypher → 弃用、新增和兼容性

新功能

以更少了解驱动程序内部细节的方式运行事务

新方法 Driver.executableQuery()Session.executeRead/Write() 的包装器,但它抽象了结果处理部分,直接向调用者返回记录列表。有关更多信息,请参阅查询数据库

新方法 Session.executeWriteWithoutResult() 允许运行写查询而无需结果处理。

打包更改

org.neo4j.driver:neo4j-java-driver 工件不再包含着色的 Netty 和 Project Reactor 依赖项,并取代了版本 4.4 中引入的 org.neo4j.driver:neo4j-java-driver-slim

新的 org.neo4j.driver:neo4j-java-driver-all 工件包含着色的 Netty 和 Project Reactor 依赖项,类似于本次更新之前 org.neo4j.driver:neo4j-java-driver 的原始打包方式。

org.neo4j.driver:neo4j-java-driver 包含 Java 平台模块系统 (JPMS) 的显式模块声明。模块名称保持不变。

新的响应式会话
重新认证

允许轮换身份验证令牌以及会话范围查询范围的身份验证。

相互 TLS (mTLS) 作为第二身份验证因素 (2FA)

允许配置客户端 TLS 证书以对服务器进行身份验证。

请参阅相互 TLS

BookmarkManager 支持

书签管理器使实现会话的因果链变得更容易。

有关更多信息,请参阅协调并行事务BookmarkManager书签 API 更新

通知过滤 API

过滤允许仅从服务器接收部分通知,并提高服务器端性能。

有关更多信息,请参阅查看查询执行摘要 → 过滤通知

GQL 状态和错误

属性 ResultSummary.gqlStatusObjects 包含 GqlStatusObject 的序列,其中包含有关查询执行的信息。此 API 计划取代当前通知 API。

接口 Neo4jException 也公开 GQL 元数据。

有关更多信息,请参阅查看查询执行摘要 → 通知

遥测

驱动程序向服务器发送匿名 API 使用统计数据。使用驱动程序配置 telemetryDisabled: true 可以选择退出。

请参阅API 遥测

破坏性更改和弃用

弃用功能可能会在版本 6 中移除。

版本 消息 状态

5.0

基线 Java 版本 17。

已更改

5.0

GraphDatabase — 方法 .routingDriver() 已移除。请改用 .driver()

已移除

5.0

ServerInfo — 方法 .version() 已移除。请改用 .agent().protocolVersion(),或调用 dbms.components Cypher 过程。

已移除

5.0

Session — 方法 .reset() 已移除,无替代。

已移除

5.0

Neo4jException — 方法 .neo4jErrorCode() 已移除,改用 .code()

已移除

5.0

Session — 方法 .readTransaction().writeTransaction() 已弃用,推荐使用 .executeRead().executeWrite()。其异步对应方法 .executeReadAsync().executeWriteAsync() 也是如此。新方法的行为类似,但参数类型不同,并且新方法不支持 .commit().rollback().close().closed() 方法。

已弃用

5.0

Session — 方法 .lastBookmark() 已弃用,推荐使用 .lastBookmarks()

已弃用

5.0

Session — 方法 .asyncSession()reactiveSession() 已弃用。请使用 Session(Class),其中 Class 控制您所需的会话类型。

已弃用

5.0

Node, Relationship — 方法 .id() (long) 已弃用,推荐使用 .elementId() (string)。

已弃用

5.0

Relationship — 方法 .startNodeId().endNodeId() 已弃用,推荐使用 .startNodeElementId().endNodeElementId()。旧标识符是 long 类型,而新 ElementId 是 string 类型。

已弃用

5.0

响应式会话 — 接口 RxSession 已弃用,推荐使用 ReactiveSession (Flow)ReactiveSession (reactivestreams)

已弃用

5.7

Notification — 方法 .severity() 已弃用。对于原始值,请使用 .rawSeverityLevel();对于枚举值,请使用 .severityLevel()

已弃用

© . All rights reserved.