最近工作较忙,被JPA搞得焦头烂额,根本没有时间更新。今天终于有时间来分享一下最近一段时间使用的JPA。以下均为个人理解,如果有不对得地方麻烦指出
什么是JPA
JPA全程其实是java persistence api。就是java持久层api。它不是一种技术,而是一种标准。很多技术都遵守这个标准。典型得就是Hibernate。Spring也提供了遵守JPA标准的扩展。它将关系型数据库得表映射到java的的实体类中。简单讲,操作这个实体类的对象,相当于操作数据库表中的一条数据。
什么是JPQL
JPQL全称Java Persistence Query Language。Java持久化查询语言。它的总体结构和sql差不多,但是不直接操作数据库表的字段,而是操作映射了这些字段的java实体类。一个简单的查询jpql例子如下:
Select p from Person p where p.id = :id
返回值是Person实体类的对象。而其中的p.id不是数据库中的字段,而是实体类映射了数据库字段的变量名。
使用Eclipselink来实现JPA功能的实例
JPA有多种实现手段。比如Spring就提供了Springdata JPA。这个在之前对Springboot的学习记录中有些介绍。今天主要学习另外一种JPA的提供者Eclipselink。下面示例中使用Eclipselink的版本是2.6.5。其实最新版本是2.7。
JPA工程
本例直接使用Eclipse IDE新建JPA工程,然后用gradle导入所以来的包。Eclipse IDE大家都会用,新建JPA工程也很简单就不赘述。gradle的构建脚本如下:
plugins { id 'java' id 'eclipse'}group = 'com.study'version = '0.0.1-SNAPSHOT'sourceCompatibility = '1.8'repositories { mavenCentral()}dependencies { // The following dependencies is related to elipselink test implementation 'org.eclipse.persistence:eclipselink:2.6.5' implementation 'javax.persistence:javax.persistenc