1.概念:
JPA,全称Java Persistence API,直面翻译java持续接口,其实应该说是一种规范;通过注解的或者xml描述对象关系表的映射关系,并将运行期间的实体对象持久化到数据库中。
JPA的总体思想和Hibernate、TopLink、JDO等ORM框架基本一致,总的来说其包括如下三大技术:
1)ORM映射元数据;支持XML和JDK5.0注解两种元数据形式;
2)API,用来操作实体对象,可以进行crud操作,从jdbc和sql中解放开发者;
3)查询语言,通过面向对象而非面向数据库的查询语言查询数据,避免程序与SQL紧耦合;
2.常用注解:
1)Entity,表示JPA实体;
2)Table(name=“user”),指定表明
3)Id,设置主键;
4)Column,设置字段类型,其包含的属性有如下:
.name:字段名
.unique:是否唯一
.nullable:是否可以为空
.inserttable:是否可以插入
.updateable:是否可以更新
.columnDefinition: 定义建表时创建此列的DDL
.secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。
5)OrderBy(name=)字段排序
6)GeneratedValue(Strategy=)主键生成策略;
7)T_MANY,一对一关系;(本人吐槽,表示不太会用)
8)T_MANYA,多对多关系;(本人接着吐槽,表示不太会用)
9)@Lob、大字段类型;
10)Transient,瞬时字段;;
11)SINGLE_TABLE\JOINED\TABLE_PER_CLASS,相关继承映射,应该用的机会不多;
3.安装和使用;
maven:
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.10.1.RELEASE</version>
</dependency>
Gradle:
// https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '1.10.1.RELEASE'
4.例子:
例子网上很多,这里有一个比较清晰的:
http://www.tianmaying.com/tutorial/spring-boot-jpa