速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:42936
用户头像

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

关注

评论

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

2023年CCF-百度松果基金课题申报持续进行中,截至7月24日

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

全议程公布丨涌现中重塑,PingCAP 用户峰会 2023 邀你共同引领创新力量!

PingCAP

MySQL 数据库 TiDB pingCAP 平凯星辰

网络信息安全尤为重要,华为云如何为企业构建云上云下一体化安全方案?

平平无奇爱好科技

货拉拉论文入选中国市场营销国际学术年会CMIC

科技热闻

认知负担的挑战与平台工程的机遇

SEAL安全

DevOps 平台工程 认知负担

火山引擎DataLeap数据质量解决方案和最佳实践(三):最佳实践

字节跳动数据平台

瓴羊QuickBI数据门户帮助企业高效管理和展示数据,使其更加明确易懂

对不起该用户已成仙‖

华为云函数工作流FunctionGraph新手操作指南

华为云PaaS服务小智

云计算 Serverless 华为云 华为开发者大会2023

聆心智能上榜“北京市通用人工智能大模型行业应用典型场景案例”

硬科技星球

推荐书单:个人成长的一些方法

老张

个人成长 书单

prometheus描点原理

蓝胖子的编程梦

Docker 云原生 Grafana Prometheus #k8s

PoseiSwap 治理通证POSE登录PancakeSwap,开盘涨幅超2100%

大瞿科技

构建云上和云下统一的安全方案,华为云致力为企业降本增效

平平无奇爱好科技

华为云云上云下一体化安全,如何为企业打造统一、高效的安全管理平台

平平无奇爱好科技

爽游做得好,游戏部署方案必不可少,华为云游戏云端部署方案愈发吃香了

平平无奇爱好科技

云上办公时代,华为云桌面表现如何?

平平无奇爱好科技

华为云游戏云端部署方案:如何为游戏厂商降本增效

平平无奇爱好科技

MySQL的match函数在sp中使用的BUG解析

GreatSQL

数据库 greatsql

华为云CodeArts IDE Online:让你随时随地畅享云端编码乐趣

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

图+AI 生成未来|悦数图数据库亮相 2023 世界人工智能大会

悦数图数据库

AI 图数据库 大模型 AIGC

MatrixOne 0.8.0 开放公测啦!

MatrixOrigin

云原生 超融合 #数据库 MatrixOne

休闲类匹配竞技游戏公司为何需要华为云游戏云端部署方案?

平平无奇爱好科技

Python案例分析|井字棋(Tic Tac Toe)游戏 | 社区征文

TiAmo

Python 年中技术盘点 井字棋游戏

11个适合后端程序员的前端框架

高端章鱼哥

程序员 工具 后端

在 7 月 4 日,PoseiSwap 治理通证 $POSE 上线了 BNB Chain 上的头部

威廉META

语音直播源码知识分享:探索新的沟通方式

山东布谷科技

软件开发 语音 源码搭建 直播源码 语音直播源码

代码随想录训练营 Day07 - 哈希表(下)

jjn0703

🔥年中技术盘点暨7月主题征文活动开始啦!

InfoQ写作社区官方

热门活动 年中技术盘点

利用小程序技术,构建数字警务体系

没有用户名丶

不能不知道的LED显示屏产业机遇

Dylan

机遇 产业 LED显示屏 led显示屏厂家

​山东大学高校专区入驻飞桨AI Studio,优质教育资源等你来学!

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

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