写点什么

JPA 2.0 的两个类型安全标准 API 提议

  • 2009-01-30
  • 本文字数:950 字

    阅读完需:约 3 分钟

两年前作为 Java EE 5 的一部分引入的 Java Persistence API 为对象关系映射提供了一个 POJO 持久化模型。它作为 JSR-220 的一部分由 EJB 3.0 软件专家组进行开发。

Persistence 包含三个方面的内容:

  1. API,定义在 javax.persistence 包内。
  2. Java Persistence Query Language(JPQL)。
  3. 对象 / 关系元数据。

尽管 JPQL 使得持久 Java 对象得到了显著地改善,但 JPQL 仍然被描述为字符串。这样在查询操作强类型的 Java 对象的同时,它们自己却是弱类型的。用这种方式构建查询很容易出错,而且需要支持校验、自动补全和重构的特定 IDE。

在 JSR-317 规范下开发的 JPA 2.0 被包含在 Java EE 6 中,其目的是通过引入能够提供基于非字符串构建查询的新标准 API 来解决这一问题。专家组领导 Linda DeMichiel 已经发表了一篇博文描述了目前的 API 草案:

“简单说,QueryDefinition 对象可以被想成一组相当于查询语义结构的节点: - 领域(Domain)对象,相当于范围(range)变量和其它 JPQL FROM 子句的标识符变量

  • Where 子句谓词,包含一个或多个条件表达式对象
  • Select 子句,包含一个或多个‘select 条目’对象
  • Order-by 和 group-by 条目
  • 子查询(Subqueries)

等等……”

尽管该提议事实上是在现有 JPA 机制上前进了一大步,仍有许多人——这其中包括 Gavin King,认为类型安全本可以也应该得到进一步改进。King 的 Hibernate O/R 工具是使用类型安全标准 API 的先驱,并对 EJB3 产生了重大影响,他已经向专家组提交了自己的建议。他的建议利用了 Java 6 中引入的 javax.annotation.Processor,以允许编译器插件为每个应用程序中的持久类构建元模型(metamodel)类型。King 已经在两篇博文(第一篇第二篇)中描述了他的方法的更多细节,以及他和他的团队目前正在开发的与 javac 一起使用的原型注解处理器。

专家组正在认真地考虑 King 的提议,并考虑用它替换当前的审查草稿。DeMichiel 告诉我们说:

“讨论主要集中在确保该 API 给开发者带来更好的开发体验上,静态查询(类型安全方面应当比较好)和动态查询都应如此”。我们也在考虑该元模型(metamodel)生成方面的问题。”

她补充说专家组非常渴望从开发社区听到任何反馈。请在 sun.com 上的 jsr-317-pdr-feedback 留下您的任何反馈评论。

查看英文原文: Two Type-Safe Criteria API Proposals for JPA 2.0

2009-01-30 08:421253
用户头像

发布了 150 篇内容, 共 51.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

机器人精准夹取技术实现物品无损搬运

qife122

机器学习 机器人技术

HarmonyOS NEXT元服务开发快速入门案例

最新动态

鸿蒙NEXT开发案例:分贝仪

最新动态

鸿蒙NEXT应用国际化:数字与度量衡格式化

最新动态

SelectDB 在 AWS Graviton ARM 架构下相比 x86 实现 36% 性价比提升

SelectDB

数据分析 AWS arm 数据库查询 SelectDB

从 ClickHouse、Druid、Kylin 到 Doris:网易云音乐 PB 级实时分析平台降本增效

SelectDB

数据库 kylin 数据分析 Doris 网易云音乐

HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)事件推荐接入方案

最新动态

HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)本地搜索接入方案

最新动态

HarmonyOS NEXT 应用元服务开发-分布式数据对象迁移数据权限与基础数据

最新动态

鸿蒙NEXT开发案例:颜文字搜索器

最新动态

华为鸿蒙 UIAbility 组件:构建用户界面的舞台

最新动态

HarmonyOS NEXT自定义数据类型的跨应用协作:实现企业级文档管理

最新动态

ArkTS 应用的代码混淆策略:提升安全性与性能

最新动态

Apache Doris 3.0.6 版本发布

SelectDB

Doris 数据导入 LakeHouse 物化视图 数据库 大数据

HarmonyOS NEXT 应用开发快速入门案例

最新动态

鸿蒙NEXT权限申请全攻略:系统授权与用户授权之道

最新动态

HarmonyOS NEXT 端侧部署基础之 HiAI Foundation Kit

最新动态

鸿蒙NEXT开发案例:经纬度距离计算

最新动态

鸿蒙NEXT开发案例:二维码的生成与识别

最新动态

IME Kit入门:HarmonyOS输入法开发概述与基础操作

最新动态

华为鸿蒙 Want:应用组件之间信息传递的桥梁

最新动态

利用NFC增强用户体验:HarmonyOS NEXT的NFC应用指南

最新动态

HarmonyOS NEXT方舟数据管理与分布式数据库实战:构建高效同步架构

最新动态

鸿蒙 NEXT 安全控件与系统 Picker 深度剖析

最新动态

基于JWT的多租户RAG技术实现解析

qife122

OpenSearch 多租户架构

AGORA:通过群体蒸馏激发大语言模型的群体涌现能力

qife122

大语言模型 推理能力

HarmonyOS NEXT在支付场景中的安全通信设计:基于NFC和Secure Element的数据加密

最新动态

JAVA高级开发工程师怎么找工作?JAVA工作经验4-5年一般会面试什么问题?

程序员高级码农

Java 程序员 Java 面试

假如你从8月份开始准备Java面试,秋招如何成功上岸互联网大厂?Java面试题及答案分享!

程序员高级码农

Java 程序员

京东商品详情API响应数据解析

tbapi

京东商品详情API 京东数据采集 京东数据分析 京东接口

HarmonyOS NEXT跨应用跨设备数据共享实战:从拖拽到同步

最新动态

JPA 2.0的两个类型安全标准API提议_Java_Charles Humble_InfoQ精选文章