JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是Hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,Oracle的Weblogic使用EclipseLink(以前叫TopLink)作为默认的JPA实现,IBM的Websphere和Sun的Glassfish默认使用OpenJPA(Apache的一个开源项目)作为其默认的JPA实现。

JPA的底层实现是一些流行的开源ORM(对象关系映射)框架,因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范。

  1. 实体Bean的开发:

JPA规范中定义的实体bean开发的基本规范:

(1).在实体bean上添加”@Entity”注解,标识该bean为实体bean。

(2).实体bean必须序列化。

(3).使用”@Table(name=数据库表名)”注解,标识该实体bean映射到关系型数据库中的表名,如果不指定则JPA实现会自动生成默认的表名称。

(4).必须有一个使用”@Id”注解标识的主键,如指定自增主键的写法为:

(5).Bean的其他属性使用”@Column(name=列名)”注解,指定该属性映射到数据库表中的列名,如果不指定在JPA实现会自动生成默认的列名。

(6).实体Bean必须严格遵循JavaBean的规范,提供无参的默认构造方法,属性提供set和get方法。

(7).最好重写hashcode()和equals()方法,实体bean的唯一标识是主键,因此,使用实体bean的主键来比较。

  1. java注解的优缺点:

优势:

(1).描述符减少,大大提高开发效率。

(2).编译期校验,错误的注解在编译期间就会报错。

(3).注解在java代码中,从而避免了额外的文件维护工作。

(4).注解被编译成java字节码,消耗的内存小,读取速度快,往往比xml配置文件解析快几个数量级,利用测试和维护。

缺点:

(1).配置信息分散,不利于集中维护管理。

(2).改动时涉及到了程序源代码,需要找到类的源代码才可以,而且必须通过编译这一步。相比较之下xml文件可能不需要找到类源码,同时也不需要重新编译。