Py学习  »  NoSql

Jakarta EE 12 终于要统一 SQL 与 NoSQL 的查询语言了

脚本之家 • 1 周前 • 78 次点击  

 脚本之家 设为“星标
第一时间收到文章更新

图片

来源 | xxy开源 (ID:xxyopen)

在软件系统的演进过程中,随着业务规模扩大和架构复杂度提升,数据访问层往往最先变得“失控”。

我们不仅要面对 多种数据库(关系型、文档型、图数据库、宽列存储等),还必须同时适应 多种查询模型

SQL 的 JOIN文档数据库的嵌套与投影图数据库的遍历宽列数据库的集合操作……

对 Java 开发者 而言,这并不只是“多学几种语法”,而是一种长期存在的 隐性成本

查询逻辑难以复用持久化层与数据库强绑定数据库迁移代价极高

为了解决这个问题,Jakarta EE 12[1](2026 年 5 月 31 日 发布) 引入了 Jakarta Query[2],试图:

用一套统一的、面向对象的查询语言,同时覆盖关系型数据库和非关系型数据库。

如果成功,这将显著降低企业级 Java 应用在持久化层的复杂度。

Jakarta EE 是 Java 在企业级应用领域的官方标准平台,前身是大家熟悉的 Java EE

很多开发者并不直接使用 Jakarta EE,但却 每天都在间接使用它

以 Spring Boot 4 为例,它已经全面基于 Jakarta EE 11 构建:

javax.* 命名空间已彻底迁移为 jakarta.*Servlet、JPA、Bean Validation、Transactions 等核心能力,本质上都来自 Jakarta EE 规范

Spring 并未替代 Jakarta EE,而是 选择性地实现并扩展其规范

可以说:

Jakarta EE 定义标准,Spring Boot 负责落地与工程化。

Jakarta Query 是 Jakarta EE 12 中提出的一项 全新规范,目的是统一以下技术栈中的查询语言:

Jakarta Persistence(JPA)Jakarta Data Jakarta NoSQL

它并不是要 重新发明轮子,而是试图 收敛已有的查询语言体系,避免并行演进带来的割裂。

核心目标可以总结为一句话:

一次编写查询,在 SQL 与 NoSQL 之间可移植执行。

Java 生态并不缺查询语言:

HQL(Hibernate Query Language)EJB-QLJPQL(2006 年标准化)JDQL(Jakarta Data Query Language)

问题不在于 没有标准,而在于:

同源而分裂,各自演进。

JPQL 服务于关系型数据库JDQL 服务于非关系型数据库

两者语义相似,却由不同规范维护。

Jakarta Query 的出现,本质上是一次 技术债清算

成为所有持久化规范的 公共查询层被 Jakarta PersistenceJakarta NoSQLJakarta Data 共同依赖支持 关系型数据库NoSQL、未来的图数据库、其他模型

尽管如此,Jakarta Query 并没有采用 一刀切 的设计,而是引入了分层模型

1. 核心语言(Core Language)

最小公共子集服务于非关系型数据 面向 Jakarta Data 与 Jakarta NoSQL提供最小但通用的查询能力

2. 扩展语言(Extended Language)

覆盖关系型数据库的完整查询能力面向 Jakarta Persistence与 JPQL 高度对齐

这种设计的关键价值在于:

保持向后兼容避免破坏现有 JPA / JPQL 生态为未来统一演进预留空间

Jakarta Query 很可能是:

Jakarta EE 12 中最具颠覆性的变化。

更重要的是:

它由 Java 生态中最了解 ORM 与查询的 Gavin King(Hibernate 作者、JPA 核心人物)领导并推动。

从 JDBC → JPA → Jakarta Data → Jakarta Query, 企业级 Java 的持久化体系,正在从 框架林立、各自为战,走向:

多数据库支持 + 统一抽象 + 统一查询语言。

这不是一次简单的 API 更新,而是一次 理念层面 的升级。

References

[1] Jakarta EE 12: https://projects.eclipse.org/projects/ee4j.jakartaee-platform/releases/12/plan
[2] Jakarta Query: https://jakarta.ee/specifications/query/1.0


END

图片

  推荐阅读:
  1. Rust再一次比Go慢,问题出在哪里呢?
  2. 花几千块买了个“爹”:每天准时教我做人
  3. 手把手带的一个新人,能力很强。他转正的时候,特意破格给他加了薪,没想到2个月后,他居然离职了
  4. Windows这个30年的功能,是鸡肋嘛?

  5. 2026 年 01 月编程语言排行榜|C# 拿下年度编程语言~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/192154