社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NoSql

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

脚本之家 • 3 月前 • 296 次点击  

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

图片

来源 | 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 DataJakarta 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