内容简介:JPA 2.2改进了易用性
看新闻很累?看技术新闻更累?试试 下载InfoQ手机客户端 ,每天上下班路上听新闻,有趣还有料!
Oracle 最近发布 了 Java Persistence API (JPA)2.2版。JPA规范用于将 Java 对象持久化映射到关系数据库中。
作为 Java EE 8平台 的组成部分,JPA 2.2中添加了对一些新特性的支持,包括查询结果的流处理、将ManagedBeans注入AttributeConverters、重复注解(Repeating Annotations),以及操作 Java 8日期/时间API 中的类等。虽然更改为数不多,但是特点显著,因为JPA 2.2是首个以Java 8为基线的版本。
在《Java Magazine》11月/12月合刊(第17期)上,发表了Josh Juneau的文章“ What's New in JPA 2.2 ”。文中指出:
最终,JPA与Java SE 8保存了一致。它支持开发人员使用日期/时间API、查询结果流和重复注解等特性。
查询结果流
JPA在 Query
和 TypedQuery
接口中,添加了 getResultStream()
方法。使用这一改进,查询可返回一个结果流,这提供了一种操作数据的便利方法。在JPA 2.2之前,查询只能返回一个列表。使用新的流方法的示例代码如下:
ResultSet
分页的执行效果可能会更好。一些持久化方法同样考虑到了性能上的需求,并提供了更好的 getResultStream()
实现。面对大规模数据流时,开发人员应考虑性能问题。
可注入的AttributeConverter
JPA 2.2中添加了将ManagedBeans注入到AttributeConverter的特性。该特性是使用标注上下文和依赖注入(CDI,Contexts and Dependency Injection)给出的 @Inject
注解实现的。使用该特性,可在必要时将CDI资源注入到任一AttributeConverter。示例代码如下:
可重复注解
在Java 8中,如果一个注解使用 @Repeatable
定义了容器注解(Container Annotation),那么该注解就是可重复的。可重复注解允许类、方法或属性上的同一注解对应于多个实例。JPA 2.2指定了下列注释是可重复的:
-
AssociationOverride -
AttributeOverride -
Convert -
JoinColumn -
MapKeyJoinColumn -
NamedEntityGraph -
NamedNativeQuery -
NamedQuery -
NamedStoredProcedureQuery -
PersistenceContext -
PersistenceUnit -
PrimaryKeyJoinColumn -
SecondaryTable -
SqlResultSetMapping
这一改进使开发人员不再需要指定容器注释,提高了代码的可读性,进而支持编写如下的构造:
支持Java 8的日期/时间
JPA 2.2提供了基本的Java 8日期/时间类型支持,包括对下列 java.time
中类的映射:
-
LocalDate -
LocalTime -
LocalDateTime -
OffsetTime -
OffsetDateTime
与JPA以前版本的不同之处在于,2.2版中不再需要编写AttributeConverter去执行数据库和Java 8间日期/时间类型的相互映射。由于JPA内置了对Java日期/时间API的支持,因此在使用上述五种受支持的类型时,不需要再做任何额外的工作,只需插入到想要的现有API中即可。示例代码如下:
由于这些改进是Java EE 8平台组成部分,因此当前只有兼容Java EE 8的应用服务器才能提供这些服务。但是对于较早的Java EE版本,可以简单地通过在项目中包含相应的JAR文件,使用这些新特性。
更多细节,参见 Java Persistence 2.2维护版 的发行说明。
查看英文原文: Handy Improvements in JPA 2.2
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
正则表达式必知必会
Ben Forta / 杨涛、王建桥、杨晓云 / 人民邮电出版社 / 2007 / 29.00元
正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。 本书适合各种语言和平台的开发人员。一起来看看 《正则表达式必知必会》 这本书的介绍吧!