编程小TIPS:JPA 3只是改了个包名?

2021-12-20 13:38:29 浏览数 (1)

JPA 3在2020年发布了。但主流用的比较多的仍然是JPA 2.2

与JPA 2.2相比,3.0几乎没有任何实质性的功能上的更新,而只是做了一件事情,那就是“修改了下JPA的包名”

JPA 3.0的最大也是几乎唯一变动的地方,就是将JPA的类的包名发生了变更,还有就是xml配置文件中的namespaces发生变更

包名变更

代码语言:javascript复制
//从javax.persistence
import javax.persistence.*;
//变更为jakarta.persistence
import jakarta.persistence.*;

XML namespaces变更

代码语言:javascript复制
http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/orm
<!-- 变更为 -->
https://jakarta.ee/xml/ns/persistence
https://jakarta.ee/xml/ns/persistence/orm

为什么

因为JPA做为JavaEE中的一个重要功能,Oracle公司在JavaEE 8之后,决定将其捐献给Eclipse基金会运作。

在捐献时,Oracle附带了一个要求:

不能使用原品牌名称,必须以新的名称取代

于是JPA在3.0之后,变成了Jakarta Persistence,当然它的包名等一些地方也需要做出相应的修改。

是的,这就是全部原因。

而且你会发现,已经没有Java EE9了。只有Jakarta EE 9

谁支持了JPA 3.0

以下实现支持了JPA 3

  • DataNucleus (from version 6.0)
  • EclipseLink (from version 3.0)
  • Hibernate (from version 5.5)

当然,相信大多数的程序员们用的可能是Spring Data Jpa,或者就是直接的Hibernate了。

那你知道Spring Data Jpa,Hibernate,以及JPA之间究竟是个什么关系么?

0 人点赞