NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

web前端开发技术培训学习前景

小谷哥

从西方舶来品到中国智造,美的R6强势引领嵌入式厨电风向标

Geek_2d6073

兆骑科创高层次人才创新创业大赛,项目落地,云路演

兆骑科创凤阁

Spring Security系列教程07--基于内存模型实现授权

一一哥

spring springboo Spring Security OAuth

大咖说·图书分享|混合云架构

大咖说

架构 混合云

Databend 源码阅读系列(二):Query server 启动,Session 管理及请求处理

Databend

query query分析 大数据 开源 #开源 databend

百万粉丝养成记:写作4步法,解决文案创作的80%问题!

图灵社区

写作 脑科学

DevOps技术产品链

CTO技术共享

直播预告 | Homebrew 作者 Max Howell:如何打造杰出的开发者工具

玩转Devop和研发效能DevStream/DevLake

#开源

百万粉丝养成记:写作4步法,解决文案创作的80%问题!

图灵教育

写作 脑科学

Spring Security系列教程06--前后端分离时的安全处理方案

一一哥

前后端分离 springsecurity 认证授权

Spring Security系列教程01--Spring Security系列教程简介

一一哥

spring security

掌握这些核心算法,拿不到10个offer你来找我,我锤你个不争气的

收到请回复

Java 架构 算法 编程语言 语言 & 开发

java课程培训学习能成为合格的程序员吗?

小谷哥

JPEX 围绕世界杯打造“平台 + 运动”新生态,为 JPC 深度赋能

股市老人

TDesign「issue一夏·疯狂的代码&设计」主题赛事火热进行中

TDesign

腾讯 前端

Java培训的主要内容是什么?

小谷哥

Keepalived+HAProxy 搭建高可用负载均衡

CTO技术共享

Spring Security系列教程05--实现HTTP摘要认证

一一哥

HTTP 认证 Spring Security OAuth

兆骑科创双创服务平台,项目对接,人才引进

兆骑科创凤阁

如何从零开始参与 Apache 顶级开源项目?| 墙裂推荐

SelectDB

数据库 开源 程序员 社区贡献 企业号九月金秋榜

学习开发技术有哪些比较好的方法?

小谷哥

SRE 运维体系 CTO技术共享

CTO技术共享

软件测试 | 测试开发 | 白盒测试方法论

测吧(北京)科技有限公司

白盒测试

Spring Security系列教程04--实现Form表单认证

一一哥

springboot Spring Security OAuth 表单认证

Spring Security系列教程08--基于默认数据库模型实现授权

一一哥

数据库 spring security

Spring Security系列教程09--基于自定义数据库模型实现授权

一一哥

spring security Spring Boot 2

Spring Security系列教程10--基于过滤器实现图形验证码

一一哥

spring security Spring Boot 2 图片验证码

JVM 优化踩坑记

PPPHUANG

JVM GC G1垃圾回收器 Java core

【Metaverse系列三】虚幻引擎的故事

ThingJS数字孪生引擎

元宇宙 虚幻引擎

怎么选择Java培训班?

小谷哥

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