JPA 2.0的两个类型安全标准API提议
来源:互联网 发布:程序员专业 编辑:程序博客网 时间:2024/05/21 08:51
作者 Charles Humble译者 宋玮 发布于 2009年1月30日 上午8时42分
两年前作为Java EE 5的一部分引入的Java Persistence API为对象关系映射提供了一个POJO持久化模型。它作为JSR-220的一部分由EJB 3.0软件专家组进行开发。
Persistence包含三个方面的内容:
- API,定义在javax.persistence包内。
- Java Persistence Query Language(JPQL)。
- 对象/关系元数据。
尽管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机制上前进了一大步,仍有许多人——这其中包括GavinKing,认为类型安全本可以也应该得到进一步改进。King的HibernateO/R工具是使用类型安全标准API的先驱,并对EJB3产生了重大影响,他已经向专家组提交了自己的建议。他的建议利用了Java6中引入的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
转自:http://www.infoq.com/cn/news/2009/01/jpa20
- JPA 2.0的两个类型安全标准API提议
- 浅谈计算机系统的安全标准
- JPA的CRITICAL API
- JPA的核心API
- jpa的Api
- JPA的一些API
- 安全标准
- 谈谈JPA-04-JPA的常用API
- 提议
- asp(应用服务提供商)的安全标准
- JPA 类型安全的查询
- RFC43 被提议的会议
- spring data jpa 操作JPA 2.0原生api
- 揭开 Java 安全标准的神秘面纱
- 目前国际上存在的主要安全标准
- JPA的api主要类和接口
- 使用 jpa 的 Criteria API 比较日期
- JPA注解(这里包含sequence类型的)
- 中山マミ - 咲く未来
- 霜月はるか - true drop
- 奥村マヨ - 見えない翼
- Riryka - 空にキス
- 蓝屏代码stop:0X000000EA(0X85E286B8,0X8635F210,0XF7A53CBC,0X00000001)NV4_DISP是什么意思?
- JPA 2.0的两个类型安全标准API提议
- Web 2.0网页设计DIV+CSS必备资源
- 令人叹为观止的JavaScript应用站点
- PHP cookie和session的分析
- Opengl中的glTranslatef、glPushMatrix和glPopMatrix
- 随想1
- php处理透明png图片
- SQL 面试题(1)
- 发送或接受数组参数